xss_override_status

Директива xss_override_status изменяет коды HTTP-ответов для механизмов защиты от межсайтового скриптинга.

Синтаксисxss_override_status on | off;
По умолчаниюoff
Контекстhttp, server, location, if in location
Аргументыflag

Описание

Директива 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' может скрывать основные проблемы при обработке запроса, которые обычно должны приводить к возврату другого кода состояния, что потенциально приводит к вводящему в заблуждение поведению на стороне клиента.

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

← Ко всем директивам