length_hiding

Директива `length_hiding` включает функцию скрытия длины ответа, добавляя случайные байты в тело ответа.

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

Описание

Директива length_hiding является частью NGINX Length Hiding Filter Module, которая помогает смягчить атаку BREACH путём добавления случайного содержимого в конец HTTP-ответов. Когда она включена, эта директива обеспечивает сокрытие фактического размера тела ответа посредством вариации длины вывода с помощью рандомизированных HTML-комментариев. Это значительно усложняет злоумышленникам вывод длины защищённых токенов, содержащихся в ответах, тем самым защищая конфиденциальную информацию.

Директива принимает булевый аргумент-флаг, определяющий, следует ли активировать скрытие длины. Если включено, NGINX добавит случайный HTML-комментарий в конец каждого ответа. Это может быть особенно полезно в сценариях, когда отключение сжатия контента непрактично, так как это предоставляет способ рандомизации размера ответа без влияния на общую производительность. Кроме того, модуль позволяет настраивать максимальную длину добавляемых случайных данных, обеспечивая гибкость для различных приложений. Длина этих случайных байтов может быть ограничена в заданном диапазоне, давая администраторам контроль над тем, сколько дополнительных данных добавляется к каждому ответу.

На практике эту директиву следует размещать в контекстах http, server или location в конфигурационном файле NGINX. В сочетании с директивой length_hiding_max, задающей верхний предел случайной длины, администраторы могут точно настраивать характеристики безопасности и производительности ответов веб-сервера.

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

location /secure {
    length_hiding on;
    length_hiding_max 512;
}

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

Использование length_hiding без надлежащего тестирования может привести к проблемам у клиентов, ожидающих определённой длины содержимого для разбора.

На эту функцию не следует полагаться как на единственную меру защиты от BREACH; она является частью более широкого подхода к безопасности.

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