Безопасно ли доверять $_SERVER['REMOTE_ADDR']
? Можно ли его заменить, изменив заголовок запроса или что-то в этом роде?
Безопасно ли писать что-то подобное?
if ($_SERVER['REMOTE_ADDR'] == '222.222.222.222') { // my ip address
$grant_all_admin_rights = true;
}
php
security
ip-address
Серебряный свет
источник
источник
$_SERVER['REMOTE_ADDR']
переменную, установив заголовок HTTP-запроса. PHP автоматически добавляет префиксы ко всем заголовкам HTTP-запросовHTTP_
при создании ключей в$_SERVER
суперглобале.Ответы:
Да, это безопасно. Это исходный IP-адрес TCP-соединения, и его нельзя заменить путем изменения заголовка HTTP.
Один случай, о котором вы можете захотеть побеспокоиться, - это если вы находитесь за обратным прокси-сервером, и в этом случае REMOTE_ADDR всегда будет IP-адресом прокси-сервера, а IP-адрес пользователя будет предоставлен в заголовке HTTP (например, X-Forwarded-For ). Но для обычного варианта использования чтение REMOTE_ADDR подойдет.
источник
$_SERVER['REMOTE_ADDR']
IP-адрес, на который пришло TCP-соединение. Хотя технически возможно двунаправленное подделывание IP-адресов в Интернете (путем объявления нечестных маршрутов через BGP), такие атаки, вероятно, будут обнаружены и недоступны для типичного злоумышленника - в основном ваш злоумышленник должен иметь контроль над провайдером или оператором связи. На данный момент не существует возможных однонаправленных атак спуфинга на TCP. Однако двунаправленная подмена IP-адреса в локальной сети - тривиальная задача.Также имейте в виду, что это может быть не IPv4, а IPv6-адрес. В этом отношении ваша текущая проверка хороша, но если вы проверите, что она
1.2.3.4
происходит только где-нибудь внутри$_SERVER['REMOTE_ADDR']
, злоумышленник может просто подключиться2001:1234:5678::1.2.3.4
.В целом, для любых других приложений, кроме критических (банковские / военные / потенциальный ущерб> 50 000 евро), вы можете использовать удаленный IP-адрес, если вы можете исключить злоумышленников в своей локальной сети.
источник
$_SERVER['REMOTE_ADDR']
IP-адрес, на который пришло TCP-соединение, полностью зависит от вашего SAPI.you have been kicked off the wlan
легко создавать спуфинговые пакеты с помощью правильных инструментов. googleWPA downgrade test
, напримерКак уже говорилось выше, это не совсем безопасно. Но это не значит, что вам не стоит его использовать. Попробуйте совместить это с некоторыми другими методами аутентификации, например, с проверкой значений COOKIE.
источник