html_sanitize
'html_sanitize' 指令配置 NGINX 对 HTML 输入进行清理,仅允许指定的元素、属性和 CSS 属性。
NGINX module to sanitize HTML 5 with whitelisted elements, attributes and CSS
·
location
语法html_sanitize on | off;
默认值off
上下文location
参数flag
说明
'html_sanitize' 指令是 NGINX HTML Sanitization 模块的一部分,该模块使用 gumbo-parser 解析 HTML5,并使用 katana-parser 解析内联 CSS。该指令主要用于 'location' 上下文,以对传入的 HTML 内容应用清理规则,确保输出仅包含管理员定义的白名单元素和属性。
当启用此指令并将其设置为 'on' 时,它会对通过指定 location 的任何 HTML 内容触发清理过程。清理过程包括解析 HTML 数据、识别元素和属性,然后过滤掉任何未被明确允许的项目。这种方法有助于缓解 XSS (跨站脚本攻击) 漏洞,确保只将安全且经过校验的 HTML 返回给客户端。用户还可以使用相关指令(例如 'html_sanitize_element' 或 'html_sanitize_attribute')自定义允许的元素、属性和 CSS 属性列表。
配置示例
location /sanitize {
html_sanitize on;
html_sanitize_element div;
html_sanitize_attribute src;
html_sanitize_style_property color;
}⚠
请确保明确允许所有必要的元素和属性;否则,它们将从输出中被删除。
⚠
请记住,如果未正确配置,启用 sanitization 可能会改变有效的 HTML,从而破坏你的页面。