Archive for July, 2009
Ban pe IP
Foloseam pana de curand o metoda pentru a bana un IP chiar daca foloseste proxy transparent. Solutia pe care am folosit-o era urmatoarea functie :
function getip() {
if (isset($_SERVER["HTTP_X_FORWARDED_FOR"]))
foreach (explode(",",$_SERVER["HTTP_X_FORWARDED_FOR"]) as $ip) {
if (baseMod::validip(trim($ip))) {
return $ip;
}
}
$ipsl=array("HTTP_CLIENT_IP","HTTP_X_FORWARDED","HTTP_FORWARDED_FOR","HTTP_FORWARDED","HTTP_X_FORWARDED");
foreach ($ipsl as $tp)
{
if (isset($_SERVER[$tp]))
if (baseMod::validip($_SERVER[$tp]))
return $_SERVER[$tp];
}return $_SERVER["REMOTE_ADDR"];
}
IP-ul returnat in treceam in baza de date ca fiind banat… problema aici este ca are prioritate IP-ul trimis de proxy. Astfel se pot face modificari la HEADER-ul trimis de browser si introduce HTTP_X_FORWARDED_FOR cu ce IP se doreste…
Solutia evidenta este de a adauga in ban atat adresa returnata din $_SERVER["REMOTE_ADDR"] cat si pe cea din header.
Sper sa gaseasca cineva utila informatia asta si sa nu faca aceasi greseala ca mine
Tags: ban, securitate