html_sanitize

Директива 'html_sanitize' настраивает NGINX для очистки HTML-входных данных, разрешая только указанные элементы, атрибуты и CSS-свойства.

Синтаксисhtml_sanitize on | off;
По умолчаниюoff
Контекстlocation
Аргументыflag

Описание

Директива 'html_sanitize' является частью модуля NGINX HTML Sanitization, который использует gumbo-parser для разбора HTML5 и katana-parser для inline CSS. Эта директива в основном используется в контексте 'location' для применения правил санитаризации к входящему HTML-контенту, гарантируя, что на выходе окажутся только те элементы и атрибуты, которые определил администратор.

Когда эта директива включена и установлена в значение 'on', она запускает процесс санитаризации для любого HTML-контента, проходящего через указанный location. Процесс санитаризации включает разбор HTML-данных, определение элементов и атрибутов и последующую фильтрацию всего, что явно не разрешено. Такой подход помогает снизить риск уязвимостей XSS (Cross-Site Scripting), обеспечивая возврат клиенту только безопасного и проверенного HTML. Пользователи также могут настраивать список разрешённых элементов, атрибутов и CSS-свойств с помощью связанных директив, таких как 'html_sanitize_element' или 'html_sanitize_attribute'.

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

location /sanitize {
    html_sanitize on;
    html_sanitize_element div;
    html_sanitize_attribute src;
    html_sanitize_style_property color;
}

Убедитесь, что вы явно разрешили все необходимые элементы и атрибуты; в противном случае они будут удалены из вывода.

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

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