Twitter RSS
| |

Cand aveti un site aveti destule motive sa blocati accesul prin proxy. Majoritatea celor care folosesc proxy sunt fie spameri, fie hackeri care v-au pus gand rau, asa ca de multe ori e bine sa blocati accesul prin proxy sau, daca nu se poate, cel putin sa il logati.

OK, se pune problema “De unde stiu daca se foloseste proxy? Doar e proxy si ascunde IP-ul real.” Problema nu e chiar asa complicata cum se crede la prima vedere. Cand un utilizator foloseste un server proxy, serverul forwardeaza pachetele la destinatie alterate. Adica, pe langa pachetele primite mai trimite inca un header care din PHP poate fi citit.

Acest header e HTTP_X_FORWARDED_FOR si poate fi citit din variabila super-globala $_SERVER in care se pastreaza si variabila REMOTE_ADDR – IP-ul real.

Ca sa va dati seama daca userul foloseste proxy verificati continutul variabilei $_SERVER['HTTP_X_FORWARDED_FOR']. Daca variabila contine un IP, atunci e un proxy care intermediaza totul si IP-ul continut e de fapt IP-ul real al vizitatorului. Un exemplu de utilizare aveti mai jos:

< ?php
$ip = $_SERVER['REMOTE_ADDR'];
$proxy = $_SERVER['HTTP_X_FORWARDED_FOR'])
if( ereg(’^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$’,$proxy )
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
?>

Exemplul e doar demonstrativ pentru ca are mici neajunsuri datorita carora poate fi furat. De exemplu, daca un utilizator e intr-un LAN mascat prin NAT si in NAT are un server proxy il poate folosi caz in care $_SERVER['HTTP_X_FORWARDED_FOR'] va avea valoarea adresei locale, adica un IP neroutabil care nu va ajuta cu nimic. Deci, ca sa puteti folosi concret aceasta functionalitate trebuie sa mai adaugati cateva linii de cod care verifica daca nu cumva IP-ul e neroutabil pentru a nu loga un IP care nu va ajuta cu nimic.

Popularity: 7% [?]

Ai intrebari?

Reclama
Categorii
Apache
Articole si tutoriale legate de serverul web Apache.
/articole-tutoriale-apache/

cPanel
Articole si tutoriale legate de utilizarea si administrarea sistemului de gestiune a serverelor de hosting, cPanel.
/articole-tutoriale-cpanel-whm/

DNS
Vezi toate articolele din categoria DNS
/dns-bind-domain-name-services/

Linux
Articole si tutoriale legate de Linux, sisteme BSD sau alte sisteme de operare din familia UNIX.
/articole-tutoriale-linux/

Mail
Vezi toate articolele din categoria Mail
/mail/

MySQL
Articole si tutoriale despre serverul de baze de date MySQL.
/articole-tutoriale-optimizare-mysql/

Perl
Vezi toate articolele din categoria Perl
/perl-practical-extraction-and-report-language/

PHP
Vezi toate articolele din categoria PHP
/php-language-hypertext-preprocessor/

Virtualizare
Articole si tutoriale despre virtualizare si sistemel virtuale create cu Xen sau OpenVZ.
/virtualizare-xen-openvz/

Webmin / Virtualmin
Articole si tutoriale legate de sistemul de gestiune gratuit Webmin sau modulul Virtualmin.
/webmin-virtualmin/





Newsletter
LAMP Recomandã
NetHelp
SRV.ro
ABCDomenii