feat: Add comprehensive documentation suite and reorganize project structure
- Created complete documentation in docs/ directory - Added PROJECT_OVERVIEW.md with feature highlights and getting started guide - Added ARCHITECTURE.md with system design and technical details - Added SECURITY.md with comprehensive security implementation guide - Added DEVELOPMENT.md with development workflows and best practices - Added DEPLOYMENT.md with production deployment instructions - Added API.md with complete REST API documentation - Added CONTRIBUTING.md with contribution guidelines - Added CHANGELOG.md with version history and migration notes - Reorganized all documentation files into docs/ directory for better organization - Updated README.md with proper documentation links and quick navigation - Enhanced project structure with professional documentation standards
This commit is contained in:
182
examples/example_ip_tracking_usage.php
Normal file
182
examples/example_ip_tracking_usage.php
Normal file
@@ -0,0 +1,182 @@
|
||||
<?php
|
||||
/*******************************************************************************************************************
|
||||
| Example: IP Tracking Usage
|
||||
| This file demonstrates how to use the enhanced IP tracking system
|
||||
|*******************************************************************************************************************/
|
||||
|
||||
define('_ISVALID', true);
|
||||
include_once 'f_core/config.core.php';
|
||||
|
||||
// Example 1: Log user activities
|
||||
VIPTracker::logActivity('page_view', [
|
||||
'page' => 'home',
|
||||
'user_type' => 'guest'
|
||||
]);
|
||||
|
||||
VIPTracker::logActivity('video_watch', [
|
||||
'video_id' => 12345,
|
||||
'duration' => 120
|
||||
]);
|
||||
|
||||
VIPTracker::logActivity('login_attempt', [
|
||||
'username' => 'john_doe',
|
||||
'success' => true
|
||||
]);
|
||||
|
||||
// Example 2: Check if current user's IP is banned
|
||||
$user_ip = VIPaccess::getUserIP();
|
||||
$ban_info = VIPTracker::isBanned($user_ip);
|
||||
|
||||
if ($ban_info) {
|
||||
echo "Your IP is banned. Reason: " . $ban_info['reason'];
|
||||
exit;
|
||||
}
|
||||
|
||||
// Example 3: Get IP statistics
|
||||
$ip_stats = VIPTracker::getIPStats($user_ip, 24); // Last 24 hours
|
||||
echo "Total requests in last 24h: " . $ip_stats['total_requests'];
|
||||
|
||||
// Example 4: Detect threats and auto-ban if necessary
|
||||
$threats = VIPTracker::detectThreats($user_ip);
|
||||
echo "Threat level: " . $threats['risk_assessment'];
|
||||
|
||||
if ($threats['threat_level'] >= 5) {
|
||||
// Auto-ban high-risk IPs
|
||||
VIPTracker::autoBan($user_ip);
|
||||
echo "IP has been automatically banned due to suspicious activity.";
|
||||
}
|
||||
|
||||
// Example 5: Manual IP banning (admin function)
|
||||
if (isset($_SESSION['ADMIN_NAME'])) {
|
||||
// Ban a specific IP
|
||||
$result = VIPTracker::banIP('192.168.1.100', 'Spam activity detected', 24, $_SESSION['ADMIN_NAME']);
|
||||
|
||||
if ($result) {
|
||||
echo "IP banned successfully";
|
||||
}
|
||||
|
||||
// Unban an IP
|
||||
$result = VIPTracker::unbanIP('192.168.1.100');
|
||||
|
||||
if ($result) {
|
||||
echo "IP unbanned successfully";
|
||||
}
|
||||
}
|
||||
|
||||
// Example 6: Integration with existing login system
|
||||
function handleLogin($username, $password) {
|
||||
$user_ip = VIPaccess::getUserIP();
|
||||
|
||||
// Check if IP is banned
|
||||
if (VIPTracker::isBanned($user_ip)) {
|
||||
VIPTracker::logActivity('login_blocked', ['username' => $username, 'reason' => 'banned_ip']);
|
||||
return false;
|
||||
}
|
||||
|
||||
// Check rate limiting
|
||||
if (!VSecurity::checkRateLimit('login_' . $user_ip, 5, 300)) {
|
||||
VIPTracker::logActivity('login_rate_limited', ['username' => $username]);
|
||||
return false;
|
||||
}
|
||||
|
||||
// Perform actual login validation
|
||||
$login_success = validateUserCredentials($username, $password);
|
||||
|
||||
if ($login_success) {
|
||||
VIPTracker::logActivity('login_success', ['username' => $username]);
|
||||
return true;
|
||||
} else {
|
||||
VIPTracker::logActivity('login_failed', ['username' => $username]);
|
||||
|
||||
// Check for brute force and auto-ban if necessary
|
||||
VIPTracker::autoBan($user_ip);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Example 7: Monitor file uploads
|
||||
function handleFileUpload($file) {
|
||||
$user_ip = VIPaccess::getUserIP();
|
||||
|
||||
VIPTracker::logActivity('file_upload_attempt', [
|
||||
'filename' => $file['name'],
|
||||
'size' => $file['size'],
|
||||
'type' => $file['type']
|
||||
]);
|
||||
|
||||
// Check upload rate limiting
|
||||
if (!VSecurity::checkRateLimit('upload_' . $user_ip, 10, 3600)) {
|
||||
VIPTracker::logActivity('upload_rate_limited', ['filename' => $file['name']]);
|
||||
return false;
|
||||
}
|
||||
|
||||
// Process upload...
|
||||
$upload_success = processFileUpload($file);
|
||||
|
||||
if ($upload_success) {
|
||||
VIPTracker::logActivity('file_upload_success', ['filename' => $file['name']]);
|
||||
} else {
|
||||
VIPTracker::logActivity('file_upload_failed', ['filename' => $file['name']]);
|
||||
}
|
||||
|
||||
return $upload_success;
|
||||
}
|
||||
|
||||
// Dummy functions for example
|
||||
function validateUserCredentials($username, $password) {
|
||||
// Your existing login validation logic
|
||||
return true;
|
||||
}
|
||||
|
||||
function processFileUpload($file) {
|
||||
// Your existing file upload logic
|
||||
return true;
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>IP Tracking Examples</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>IP Tracking System Examples</h1>
|
||||
|
||||
<h2>Current IP Information</h2>
|
||||
<p><strong>Your IP:</strong> <?= secure_output($user_ip) ?></p>
|
||||
<p><strong>Requests (24h):</strong> <?= $ip_stats['total_requests'] ?></p>
|
||||
<p><strong>Threat Level:</strong> <span class="threat-<?= strtolower($threats['risk_assessment']) ?>"><?= $threats['risk_assessment'] ?></span></p>
|
||||
|
||||
<?php if ($ban_info): ?>
|
||||
<div style="color: red; font-weight: bold;">
|
||||
<p>⚠️ Your IP is currently banned!</p>
|
||||
<p>Reason: <?= secure_output($ban_info['reason']) ?></p>
|
||||
<p>Banned on: <?= secure_output($ban_info['ban_date']) ?></p>
|
||||
</div>
|
||||
<?php else: ?>
|
||||
<div style="color: green;">
|
||||
<p>✅ Your IP is not banned</p>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<h2>Recent Threats Detected</h2>
|
||||
<?php if (!empty($threats['threats'])): ?>
|
||||
<ul>
|
||||
<?php foreach ($threats['threats'] as $threat): ?>
|
||||
<li><?= secure_output($threat) ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php else: ?>
|
||||
<p>No threats detected for your IP.</p>
|
||||
<?php endif; ?>
|
||||
|
||||
<style>
|
||||
.threat-high { color: #dc3545; }
|
||||
.threat-medium { color: #fd7e14; }
|
||||
.threat-low { color: #ffc107; }
|
||||
.threat-none { color: #28a745; }
|
||||
</style>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user