Для чего ХАБР использует HTTP заголовок Referer?

Я настроил браузер Waterfox (но это не главное) и столкнулся с проблемой: при нажатии кнопок, которые отправляют AJAX/POST запросы, я получаю сообщения об ошибках, таких как "XSS detected" или "CSRF атака". Я написал в поддержку, приложив все заголовки, которые отправляет браузер во время использования сайта при таких запросах.

На что получил следующий ответ:

Здравствуйте!

Мы не тестируем сайт в браузере Waterfox. Поэтому поведение сайта в этом браузере может быть непредсказуемым.

Это логично, но меня все же волнует, почему я сразу идентифицируюсь как "атакующий"? В процессе разборки ситуации я выяснил, что при отключении отправки заголовка "HTTP Header Referer" ХАБР начинает сигнализировать о "панике". 

Неужели ХАБР до сих пор полагается на этот заголовок, который любой может подделать? Не могли бы вы рассмотреть возможность его исключения из системы безопасности, как это делают другие ресурсы?
  • 13 декабря 2024 г. 14:13
Ответы на вопрос 1
Заголовок HTTP Referer используется для передачи информации о том, с какой страницы пришел пользователь. В контексте веб-приложений, таких как ХАБР, этот заголовок может использоваться в целях безопасности, чтобы помочь определить, допустимо ли обрабатывать запрос. Например, проверка Referer может использоваться для защиты от определённых типов атак, таких как Cross-Site Request Forgery (CSRF).

1. **CSRF защита**: Когда пользователь отправляет запрос, сервер может проверять заголовок Referer, чтобы убедиться, что запрос пришел с разрешенного источника. Это может помочь предотвратить несанкционированные действия, которые могут быть инициированы злоумышленниками с других сайтов.

2. **XSS защита**: В некоторых случаях проверка Referer может быть частью механизма защиты от межсайтовых скриптовых атак (XSS). Это не является основным методом защиты, но может быть частью многоуровневой стратеги.

Тем не менее, полагаться исключительно на заголовок Referer для защиты от атак не является лучшей практикой. Заголовок может быть подделан или удален, и многие браузеры позволяют пользователям управлять этой настройкой по соображениям конфиденциальности. Поэтому, если сайт зависит от Referer для работы своей системы безопасности, это может привести к ошибкам и ложным срабатываниям, как вы и столкнулись.

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

Если вы хотите, чтобы ваша обратная связь была учтена, рекомендую написать разработчикам ХАБР: опишите ситуацию и предложите им рассмотреть возможность улучшения систем безопасности, используя более современные и надежные методы, вместо упования на заголовок Referer.
Похожие вопросы