xss_override_status
Директива xss_override_status изменяет коды HTTP-ответов для механизмов защиты от межсайтового скриптинга.
Описание
Директива xss_override_status позволяет управлять кодами HTTP-ответов, возвращаемыми клиентам для кросс-сайтовых запросов, которые обычно дают коды 30x, 40x или 50x. Когда эта директива установлена в on, любые такие коды ответа переопределяются и вместо них возвращается код 200 OK. Это поведение особенно полезно для гарантии того, что JSONP-запросы, характерные для сценариев, требующих обмена ресурсами между разными источниками, обрабатываются плавно и не прерываются из‑за кодов ошибок. Фактически это позволяет фронтенд‑приложению продолжать работу без перерывов из‑за HTTP-ошибок.
Эта директива является частью модуля xss, который расширяет возможности NGINX по обработке определённых сценариев межсайтового скриптинга (XSS). Обычно модуль настраивают так, чтобы использовать поведение по умолчанию, при котором для JSONP-подобных обратных вызовов обрабатываются только ответы с кодами 200 или 201. Однако при включённой директиве xss_override_status разработчики могут возвращать контролируемый код 200 даже если исходная обработка выдаёт различные коды ошибок, что помогает обеспечить бесперебойный пользовательский опыт в веб‑приложениях, которые зависят от асинхронного получения данных из разных источников.
Пример конфига
server {
location /api {
xss_get on;
xss_override_status on;
}
}Установка этой директивы в 'on' может скрывать основные проблемы при обработке запроса, которые обычно должны приводить к возврату другого кода состояния, что потенциально приводит к вводящему в заблуждение поведению на стороне клиента.
Убедитесь, что переопределение кодов состояния не конфликтует со стратегией обработки ошибок вашего приложения, так как это может скрыть реальные ошибки.