HTTP_REFERER установлен клиентом - PullRequest
3 голосов
/ 28 марта 2011

Я слышал, что HTTP_REFERER может быть подделан.У меня есть 2 сайта, первый связывается со вторым, а второй использует HTTP_REFERER, чтобы проверить, что запрос от первого.

Если я получаю фальшивый запрос со своего первого сайта на второй, и я знаю, что этот запрос не был сделан, что я должен думать?третий веб-сайт подделывает http_ref для всех своих пользователей, или физическое лицо подделывает его из настроек своего браузера?Я хочу знать, установлен ли http_ref / подделан клиентом / браузером или самим веб-сайтом?

Ответы [ 2 ]

8 голосов
/ 28 марта 2011

Это информация, отправленная клиентом. Обычно это страница, с которой вы щелкнули ссылку.

Это также может быть подделано. Вы можете сделать это самостоятельно, установив HEADER в запросе PHP cURL.

curl_setopt( $ch, CURLOPT_HTTPHEADER, array(
        'Host: www.google.com',
        'Referer: http://google.com/', 
        'FaKeHEADER: ThisIsFakeButItWillBeSentAnyways'));  

Принимающий сервер увидит их в заголовке, хотя он никогда не был отправлен с google.com. Вы также можете подделать все остальное, что вы увидите в заголовке (пользовательские агенты, куки и т. Д.).

Вам будет трудно обнаружить поддельные заголовки, если вы не будете точно знать, как каждый из них должен выглядеть из каждого источника. Лучшее, что вы можете сделать, - это работать с IP-адресами и ограничивать типы заголовков, которые вы принимаете (например, если страница может использовать только запросы GET, отклоните все запросы POST). Даже тогда, если кто-то хочет обмануть вас, скорее всего, они будут, и вы не будете знать это.

Если вы пытаетесь защитить соединение между двумя вашими сайтами, вам следует ограничить соединение не только заголовком, который вообще не защищен.

Редактировать: Вы даже можете отправлять действительно поддельные заголовки. Я обновил пример, чтобы показать, что я имею в виду. Некоторые сайты используют собственные (например, поддельные) заголовки для прохождения проверки подлинности.

0 голосов
/ 28 марта 2011

Это может быть очень легко подделано клиентом. Однако большинство людей не будут беспокоиться. В 99% случаев вы должны думать, что это правильное значение, если только у вас нет веской причины не верить в это (например, если вы подозреваете бота).

...