html_sanitize

'html_sanitize' 指令配置 NGINX 对 HTML 输入进行清理,仅允许指定的元素、属性和 CSS 属性。

语法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,从而破坏你的页面。

← 返回所有指令