Forum Webscript.Ru
Программирование => PHP => Тема начата: attilla от 16 Апреля 2004, 02:01:07
-
Где подробнее можно узнать о субже? А то мануал скачал, а там нет. :( И чем отличается от REMOTE_ADDR
Вот в чем смысл кода?
if(empty($ip)){
if (getenv(\'HTTP_X_FORWARDED_FOR\')){
$ip=getenv(\'HTTP_X_FORWARDED_FOR\');}
else{
$ip=getenv(\'REMOTE_ADDR\');}}
-
смысл этого кода в том, чтобы хакер мог с легкостью обмануть твой сркипт, подставив вместо реального адреса любую туфту.
-
attilla
Дело в том, что заголовок X-Forwarded-For формируется прокси-сервером (или прокси-серверами), который может оказаться между компьютером пользователя и твоим веб-сервером. Если этих прокси-серверов в цепочке много, то этот заголовок будет содержать не один адрес, а несколько.
RomikChef имел в виду, что на этот заголовок полагаться нельзя - его можно легко подделать.
Ничего не мешает просто отправить веб-серверу в запросе заголовок X-Forwarded-For: 127.0.0.1 и повеселить админа :)
Так что единственная достоверная информация о IP-адресе, с которого пришел запрос - это REMOTE_ADDR.
-
Значит, $REMOTE_ADDR только использовать? И больше ничего?
А ссылочка есть на официальное описание HTTP_X_FORWARDED_FOR?
-
если вопрос стоит так - ИЛИ ИЛИ, то да.
но лично я пишу и то и другое.
почитать - как и обо всем другом - в гугле
-
http://ru2.php.net/getenv
Там приведена несколько другая функция определения IP.
Только не понимаю, когда может быть $ip = "UNKNOWN" :)
-
attilla:
А ссылочка есть на официальное описание HTTP_X_FORWARDED_FOR?
Насколько я знаю, заголовок X-Forwarded-For не входит в спецификацию HTTP, точно так же, как и все остальные заголовки, начинающиеся на "X-". Просто производители прокси-серверов договорились использовать этот заголовок для своих нужд.
-
FreeSpace:
точно так же, как и все остальные заголовки, начинающиеся на "X-".
[off]
точно так.
это относится также и к почтовым заголовкам
[/off]
-
pauk а чем тот код лучше?
что означает HTTP_CLIENT_IP? Тоже описания нет, хотя не на Х начинается