Надежность $_SERVER['REMOTE_ADDR']
$_SERVER['REMOTE_ADDR'] является жизненно важной переменной в веб-разработке, предоставление IP-адреса клиента, инициирующего HTTP-запрос. Однако существует распространенное заблуждение, что это значение можно легко подделать, что приводит к опасениям по поводу его надежности.
Можно ли доверять $_SERVER['REMOTE_ADDR']?
Да, в целом можно безопасно доверять значению $_SERVER['REMOTE_ADDR']. Он представляет собой IP-адрес TCP-соединения клиента и не может быть изменен путем изменения заголовков HTTP. Это связано с тем, что IP-адрес является свойством соединения TCP/IP и не передается как часть заголовков HTTP.
Потенциальные ловушки
Однако существует одно важное исключение из этого правила. Если ваш сервер находится за обратным прокси-сервером, REMOTE_ADDR будет представлять IP-адрес прокси-сервера, а не клиента. В этом случае IP-адрес клиента будет включен в заголовок HTTP, обычно X-Forwarded-For.
Например, если ваш сервер находится за обратным прокси-сервером с IP-адресом 111.111.111.111, запросы ваш сервер будет исходить с этого IP-адреса. Чтобы получить IP-адрес клиента в этом сценарии, вам необходимо изучить заголовок X-Forwarded-For.
Однако в большинстве распространенных сценариев, когда вы напрямую получаете HTTP-запросы от клиентов без обратного прокси-сервера, доверяя $_SERVER['REMOTE_ADDR'] — надежный способ определения IP-адреса клиента.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3