Ja w skryptach zabezpieczam się tak:
Kod
<?php
// Session
session_start();
// Logs and user control
if(!isset($_SESSION['ip']) || empty($_SESSION['ip'])) {
$line = '['.date('d.m.Y H:i:s').'] IP: '.$_SERVER['REMOTE_ADDR'].' SESSION: '.$_COOKIE["PHPSESSID"]."\n\t\t".$_SERVER['HTTP_USER_AGENT']."\n";
$file = fopen('log.txt','a');
if($file) {
fwrite($file,$line);
fclose($file);
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
$_SESSION['id'] = $_COOKIE['PHPSESSID'];
}
}
if($_SESSION['ip']!==$_SESSION['ip'] || $_SESSION['id']!==$_COOKIE['PHPSESSID']) {
session_unset(); session_regenerate_id();
}
?>
Kod sprawdza, czy jest to nowa sesja. Jeśli tak, zapisuje logi (data, IP usera, ID sesji i dane o przeglądarce do pliku log.txt.
Następnie sprawdza, czy IP usera zgadza się z IP zapisanym w sesji oraz ID sesji zgadza się z tym wysłanym w ciasteczku.
Jeśli coś jest nie tak, zmienia userowi identyfikator, a ten nawet nic nie zauważa.
Pozdrawiam,
Leo van Damon