underscores_in_headers

Директива `underscores_in_headers` позволяет использовать символы подчеркивания в именах HTTP-заголовков. — NGINX HTTP Core

underscores_in_headers
httpserver
Синтаксисunderscores_in_headers on | off;
По умолчаниюoff
Контекстhttp, server
МодульNGINX HTTP Core
Аргументыflag

Описание

По умолчанию NGINX не разрешает использование подчеркиваний в именах HTTP-заголовков по соображениям безопасности, в частности чтобы избежать возможных конфликтов, связанных с поведением парсинга заголовков. Директива `underscores_in_headers` изменяет это ограничение. Она может быть установлена в 'on' или 'off', где 'on' разрешает использование подчеркиваний в именах заголовков. Это особенно полезно при работе с конкретными API или клиентами, которые зависят от наличия подчеркиваний в именах заголовков. Эту директиву можно использовать в контекстах `http` или `server`, что позволяет задавать глобальную или специфичную для сервера конфигурацию. Когда она включена, она применяется ко всем заголовкам, обрабатываемым NGINX, влияя как на входящие заголовки запросов, так и на исходящие заголовки ответов.

Пример конфига

http {
    underscores_in_headers on;

    server {
        location / {
            # server configuration
        }
    }
}

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

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