Hoşgeldiniz!

Eksik parçanızı buldunuz artık sizde paylaşılan bilgilerden yararlanabilecek, paylaşımda bulunabilecek ve özel mesaj gönderebileceksiniz..

Hemen Kayıt Olmak İçin Tıklayın!

Websitesi ziyaretçilerinin fingerprint bilgilerini javascript ile kaydetme

4nk

Moderatör
Ticaret Puanı: 1 / 0 / 0
Katılım
12 Ocak 2023
Mesajlar
1,168
JavaScript:
<?php
// --- Gerçek IP yakalama (CDN / Proxy uyumlu) ---
function getClientIp(): string {
    $candidates = [
        'HTTP_CF_CONNECTING_IP', // Cloudflare
        'HTTP_X_REAL_IP',        // Nginx
        'HTTP_X_FORWARDED_FOR',
        'REMOTE_ADDR'
    ];

    foreach ($candidates as $key) {
        if (!empty($_SERVER[$key])) {
            $ip = $_SERVER[$key];
            if ($key === 'HTTP_X_FORWARDED_FOR') {
                $ip = trim(explode(',', $ip)[0]);
            }
            return $ip;
        }
    }
    return 'unknown';
}

// --- Tüm header'ları al ---
$headers = function_exists('getallheaders') ? getallheaders() : [];

// Fallback (bazı sunucularda getallheaders yok)
if (empty($headers)) {
    foreach ($_SERVER as $key => $value) {
        if (str_starts_with($key, 'HTTP_')) {
            $name = str_replace('_', '-', substr($key, 5));
            $headers[$name] = $value;
        }
    }
}

// --- Log verisi oluştur ---
$data = [
    'timestamp' => date('c'),
    'ip' => getClientIp(),
    'method' => $_SERVER['REQUEST_METHOD'] ?? '',
    'uri' => $_SERVER['REQUEST_URI'] ?? '',
    'user_agent' => $_SERVER['HTTP_USER_AGENT'] ?? '',
    'headers' => $headers
];

// --- Dosyaya JSON olarak ekle ---
$logFile = __DIR__ . '/../secure_logs/browser_logs.txt';

// Web root dışında olması önerilir
$logDir = dirname($logFile);
if (!is_dir($logDir)) {
    mkdir($logDir, 0750, true);
}

file_put_contents(
    $logFile,
    json_encode($data, JSON_UNESCAPED_UNICODE) . PHP_EOL,
    FILE_APPEND | LOCK_EX
);
 
Üst