html_sanitize_element
Директива `html_sanitize_element` указывает, какие HTML-элементы разрешены при санитизации HTML-контента в NGINX.
Описание
Директива 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, если не контролировать это должным образом.