Intereting Posts
Объединяйте массивы, чтобы они содержали только повторяющиеся значения Обновление многомерного массива в PHP PHP / Sphinxsearch – поиск строки или lat lng paypal создает повторяющийся профиль, отображающий следующую дату платежа, такую ​​же, как дата начала профиля Показать ссылку в fpdf Обновление Ajax на div с идентификатором Как получить XML-данные как ассоциативный массив с атрибутами в качестве ключа в PHP jQuery pagination с динамическим <li> Как написать getter / setter для доступа к многоуровневому массиву по ключевым словам? Как применить класс CSS в зависимости от значения, содержащегося в переменной PHP? Как избежать неопределенного смещения Как отложить или аскетировать этот фрагмент javascript WordPress, чтобы загрузить последний раз для более быстрого времени загрузки страницы? Изменение размера изображения в PHP Обновление Zend Framework – Шаги и рекомендации php включают отпечатки 1

Можем ли мы обмануть $ _SERVER / пользовательский ip с помощью php cURL?

Ну название в основном говорит об этом.

Но для получения дополнительной информации. ,

Этот метод работает, но. ,

$ip = '1.1.1.1'; curl_setopt($handle, CURLOPT_HTTPHEADER, array("REMOTE_ADDR: $ip", "X_FORWARDED_FOR: $ip")); 

Он добавляет только эти два keys в массив $_SERVER

  • HTTP_REMOTE_ADDR
  • HTTP_X_FORWARDED_FOR

Ключ REMOTE_ADDR прежнему остается неизменным.

Можно ли изменить REMOTE_ADDR ? Ответ здесь говорит НЕТ . Но комментарий также говорит, что он может, однако, НЕ быть реальным IP-адресом пользователя, потому что он может быть скрыт прокси и другими методами. Вот почему общее правило состоит в том, чтобы не зависеть от $_SERVER['REMOTE_ADDR'] для функции безопасности.

При всем этом есть метод curl php, который также скрывает / маскирует / меняет ip? (любой другой метод php, помимо указанного выше кода, будет делать.)

А ТАКЖЕ

Есть ли способ противодействия методу ИЛИ Есть ли способ получить ACTUAL REAL IP пользователя?

Ура!

Нет. $_SERVER['REMOTE_ADDR'] – это фактический физический IP-адрес, который клиент использовал для подключения к веб-серверу, что подтверждается трехсторонним рукопожатием TCP. Невозможно подделать это, установив простые HTTP-заголовки. Вы также не можете заставить webserver / PHP перезаписывать это значение каким-либо другим способом. $_SERVER['REMOTE_ADDR'] устанавливается из информации о соединении TCP, периода.

Чтобы на самом деле обмануть IP-адрес, вам нужно гораздо глубже проникнуть в реальный сетевой уровень и иметь некоторый уровень контроля над сетевым оборудованием / человеком в средних позициях / прокси-серверах / whatnot, чтобы фактически иметь возможность установить TCP-соединение с IP-адреса кроме того, из которого вы его устанавливаете.

Есть ли способ противодействия методу ИЛИ Есть ли способ получить ACTUAL REAL IP пользователя?

№ «Фактический IP-адрес пользователя» – это адрес, на который ваш веб-сервер получил соединение из периода. Для вас нет другого адреса. Клиент подключается к вашему серверу с определенного IP-адреса, это подтверждается трехсторонним рукопожатием TCP, это единственный адрес, который вы знаете для этого клиента. Этот клиент может быть прокси-сервером или NAT-маршрутизатором (то есть прокси-сервером) или что-то еще, вы просто не знаете и не должны иметь для вас никакого значения.

Если клиент использует браузер за прокси-сервером, $_SERVER['REMOTE_ADDR'] будет IP-адресом прокси-сервера. Удаленным адресом является IP-адрес машины, которая создает соединение.

Если прокси использует заголовки, чтобы указать, выполняется ли соединение для других компьютеров, вы можете использовать эти заголовки для определения IP-адреса браузера за прокси-сервером.

  • Некоторые из этих HTTP-заголовков преобразуются в переменные окружения, такие как $_SERVER['HTTP_X_FORWARDED_FOR'] , $_SERVER['HTTP_X_FORWARDED'] , $_SERVER['HTTP_FORWARDED_FOR'] и $_SERVER['HTTP_FORWARDED']
  • Вы можете проверить, определены ли некоторые из этих переменных сервером и (попытаться) определить IP-адрес браузера за прокси-сервером.

Обратите внимание, что RFC 6648 не X-* заголовки X-* а RFC 7239 не поддерживал X-Forwarded-* , определяя Forwarded заголовок.

Вы можете проверить ответы на

  • Получить IP-адрес клиента с помощью PHP
  • Что такое полная спецификация HTTP-заголовка X-Forwarded-Proto?