Почему веб-сайты требуют заголовков реферера (и молча терпят неудачу)?

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

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

Каково же было мое удивление, когда не один, а три современных сайта вдруг ломаются без реферера.

  1. Codepen: превью пера и полные просмотры страниц просто ломаются (i.imgur.com/3abXqsC.png). Но вид редактора работает отлично.

  2. Твиттер: практически все интерактивные функции ломаются. Если вы попытаетесь твитнуть, ретвитнуть, добавить в избранное и т. д., вы получите общую ошибку без описания (i.imgur.com/E6tIKFo.png). Если вы пытаетесь обновить настройку, она просто отказывается (403) (i.imgur.com/51e2d0M.png).

  3. Imgur: Он просто не может ничего загрузить (i.imgur.com/xCWpkGX.png) и в конце концов сдается (i.imgur.com/iO2UlR6.png).

Все три являются современными веб-сайтами. Codepen уже сломался с тех пор, как я начал его использовать, поэтому я не уверен, что так было всегда, но Twitter и Imgur прекрасно работали без реферера. На самом деле я только что заметил, что Imgur сломался.

Кроме того, все они генерируют только неописательные сообщения об ошибках, если вообще генерируют, которые вообще не идентифицируют проблему. Мне потребовалось много проб и ошибок, чтобы понять это первые два раза, теперь я пробую заголовки рефереров в качестве одной из первых вещей. Но ждать! Есть еще кое-что! Все, что нужно, чтобы отменить их, — это отправить общий реферер, который является корнем хоста (например, twitter.com, codepen.io, imgur.com). Вам даже не нужно использовать фактические URL-адреса с путями к каталогам!

Один веб-сайт, я могу списать это на дерьмовый код. Но три крупных современных веб-сайта — особенно когда они работали — это огромная головная боль.

Кто-нибудь еще заметил эту тенденцию или знает, что происходит?


person referermadness    schedule 13.12.2015    source источник
comment
Немного в сторону, но как можно использовать заголовок Referer для обнаружения функций или дерьмовых устройств?!   -  person MrWhite    schedule 13.12.2015


Ответы (1)


Хотя заголовки Referer не «добавляют безопасности», их можно использовать для обрезания попыток от браузеров (которые играют по правилам ссылок), которые вызывают запрос. Это не делает сайт «защищенным» от любой попытки HTTP, но это честный фильтр для браузеров (работающих от имени, возможно, ничего не подозревающих пользователей), действующих как прокси.

Вот некоторые возможности:

  1. Может предотвратить кражу (или фишинг) пользователей и/или другие атаки путем внедрения в формы POSTS (неидемпотентные запросы), которые не ограничены политикой единого происхождения.
  2. Некоторые запросы могут привести к утечке небольшого количества информации, событие с Same- Политика происхождения.
  3. Ограничьте стороннее использование встроенного контента, такого как iframe, видео/изображения и другие хотлинки.

То есть, хотя его определенно не следует рассматривать как последнюю линию защиты (например, он не должен заменять надлежащую аутентификацию и токены CSRF), он помогает снизить вероятность нежелательного доступа из браузеров.

person user2864740    schedule 13.12.2015