Могу ли я рассчитывать на HTTP-заголовок Referer? - PullRequest
29 голосов
/ 30 ноября 2011

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

Я знаю, что люди могут отключить Referer в своих браузерах. Есть идеи, как часто пользователи делают это? Могу ли я рассчитывать на присутствие Referer в 99%?

Ответы [ 2 ]

30 голосов
/ 20 июня 2013

Как правило, вы должны , а не доверять заголовку HTTP Referer по любым важным вопросам, за исключением чисто информативного статистического анализа того, кем являются ваши посетители, или при поиске моделей поведения среди пользователейВаш собственный сайт.

Ни при каких обстоятельствах не рекомендуется использовать этот заголовок для AAA (Аутентификация, Авторизация и Учет), если, как указано выше, вы не считаете Учет простым анализом трафика вашего посетителя.

OWASP (Open Security Application Project Project) считает его "уязвимым", используя заголовок Referer для AAA в вашем веб-приложении .

Некоторые другие, более конкретные причины, по которым нетчтобы доверять заголовку Referer, включите:

  • Как правило, при «связывании» из соединения HTTP <-> HTTPS (TLS) большинство стандартных веб-браузеров не сообщают этот заголовок.

  • По причинам конфиденциальности многие корпоративные прокси настроены на удаление / stразорвите этот заголовок, поэтому, даже если веб-браузер отправит этот заголовок, корпоративное прокси-программное обеспечение может удалить его.

  • Из-за диких решений безопасности, вредоносных программ, браузеров, встроенных в приложения ...Известно, что они изменяют и / или изменяют содержимое этого заголовка.

Осторожно, что:

  • При «связывании» с HTTPS на HTTPS, большинство стандартныхВеб-браузеры будут сообщать этот заголовок даже при изменении имени домена или адреса сети.
1 голос
/ 30 ноября 2011

Пока у вас есть разумное поведение по умолчанию, когда нет пригодного для использования значения, и вы не делаете ничего чувствительного на его основе, это, вероятно, нормально.

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

Возможно, есть также некоторые случаи, когда переключение между HTTPS и HTTP приведет к тому, что заголовок реферера не будетбыть отправленным.

...