html_sanitize_element

Директива `html_sanitize_element` указывает, какие HTML-элементы разрешены при санитизации HTML-контента в NGINX.

Синтаксисhtml_sanitize_element element_name [element_name ...];
По умолчаниюnone
Контекстlocation
Аргументы1+

Описание

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

Директива принимает один или несколько аргументов, соответствующих именам HTML-элементов, которые вы хотите разрешить. Например, вы можете указать такие элементы, как div, span или a, тем самым оставляя в предоставленном HTML только эти теги. Пользователям следует внимательно выбирать, какие элементы разрешать, так как слишком либеральные настройки могут подорвать преимущества этой директивы в плане безопасности. Обработка каждого разрешённого элемента включает проверку, чтобы убедиться, что любые связанные атрибуты также соответствуют заданным критериям; для этого могут использоваться дополнительные директивы, такие как html_sanitize_attribute, для управления разрешёнными атрибутами на элементах.

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

location /api/submit {
    html_sanitize_element div span a;
}

Убедитесь, что вы определили как минимум один элемент; в противном случае никакой HTML не будет разрешён и содержимое может быть полностью удалено.

Будьте осторожны при добавлении большого числа элементов в белый список; это может повысить риск XSS, если не контролировать это должным образом.

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