html_sanitize
Директива 'html_sanitize' настраивает NGINX для очистки HTML-входных данных, разрешая только указанные элементы, атрибуты и CSS-свойства.
Описание
Директива '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 при неправильной настройке, что может привести к нарушению работы ваших страниц.