Если IP-адреса могут быть подделаны так - PullRequest
0 голосов
/ 31 января 2012

Если IP-адреса могут быть подделаны путем создания ложных или манипулируемых заголовков http, и поэтому на них не следует полагаться при проверке входящего запроса на наших страницах PHP / ASP, почему серверы принимают это и полагаются на него? Например, запрет IP-адресов или их разрешение основаны на IP-адресах.

получают ли серверы информацию об IP другим (и более надежным) способом, чем, скажем, PHP / ASP получает ее через переменные сервера?

Ответы [ 2 ]

4 голосов
/ 31 января 2012

Серверы обычно готовы полагаться на IP-адрес соединения для трафика с низким уровнем риска, поскольку для настройки сеанса TCP требуется трехстороннее рукопожатие .Это рукопожатие может быть успешным только в том случае, если IP-адрес в пакетах является маршрутизируемым и , и какой-либо компьютер готов обработать соединение.Мошеннический маршрутизатор может подделывать IP-адреса, но, в общем, подделать соединения труднее, чем дальше от любой конечной точки находится маршрутизатор, поэтому большинство людей готовы полагаться на него для использования с низким уровнем риска.(Подделка DNS - гораздо более вероятный способ искажать конечную точку соединения, например.)

Пользователи с более высоким риском должны использовать что-то более похожее на TLS , IPsec или CIPSO (редко) для проверки конечной точки соединения или построения аутентификации пользователя на нижних уровнях для аутентификации определенных соединений ( OpenSSH ).

Но фактическая содержимое сеанса TCP может быть чем угодно и что угодно - и сервер не должен полагаться на содержимое сеанса TCP (например, заголовки HTTP), чтобы точно сообщать IP-адреса или что-либо еще жизненно важное.

2 голосов
/ 31 января 2012

IP-адреса не могут быть подделаны.Адрес необходим серверу для отправки ответа.

PHP получает IP-адрес своего глобального $ _SERVER от сервера (отсюда и имя переменной!), Который определяет адрес ниже в стеке протоколов.

РЕДАКТИРОВАТЬ:

sarnold указывает на то, что в принципе можно испортить таблицы маршрутизации для перенаправления трафика.(Действительно, я полагаю, что это произошло в маршрутизаторе уровня 1 в Азии пару лет назад.) Поэтому я должен пояснить, что мой комментарий о том, что «IP-адреса не могут быть подделаны», был узко приспособлен для указания на то, что переменные сервера будутвсегда верно отражать IP-адрес назначения.То, что происходит за пределами сервера, - это совсем другое дело.

...