html_sanitize_element
`html_sanitize_element` 指令指定在 NGINX 中清理 HTML 内容时允许哪些 HTML 元素。
NGINX module to sanitize HTML 5 with whitelisted elements, attributes and CSS
·
location
语法html_sanitize_element element_name [element_name ...];
默认值none
上下文location
参数1+
说明
html_sanitize_element 指令是 NGINX 模块的一部分,旨在通过只允许白名单中的元素出现在输出中来对 HTML5 内容进行清理。当在 location 块中定义时,该指令指示服务器解析传入的 HTML 并移除任何未在白名单中指定的标签。这一清理过程对于提高安全性至关重要,因为它可以防止注入恶意内容(例如脚本或不受欢迎的标签),这些内容可能会利用浏览器或 Web 应用程序中的漏洞。
该指令接受一个或多个参数,参数对应要允许的 HTML 元素名称。例如,你可以指定像 div、span 或 a 这样的元素,从而仅允许这些标签保留在提供的 HTML 内容中。用户必须谨慎选择允许哪些元素,因为过于宽松的设置可能会削弱该指令的安全性。对每个被允许元素的处理包括验证,以确保任何相关属性也符合指定的条件,这些条件可以包括诸如 html_sanitize_attribute 之类的附加指令,用于指定元素上允许的属性。
配置示例
location /api/submit {
html_sanitize_element div span a;
}⚠
确保至少定义一个元素;否则将不允许任何 HTML,内容可能会被完全移除。
⚠
在向 whitelist 添加大量元素时要小心;如果未能妥善控制,可能会增加 XSS 的风险。