«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Можете ли вы действительно доверять $_SERVER['REMOTE_ADDR']?

Можете ли вы действительно доверять $_SERVER['REMOTE_ADDR']?

Опубликовано 18 ноября 2024 г.
Просматривать:618

Can You Really Trust $_SERVER['REMOTE_ADDR']?

Надежность $_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