使用可信类型缓解基于 DOM 的 XSS 攻击

Trusted Types 是一项 Web 平台安全功能,通过阻止风险注入点(例如 .innerHTML)使用未经验证的字符串值,有助于防范某些基于 DOM 的 XSS 攻击。如果某个有风险的注入点被屏蔽,系统会抛出违规提示。

Content-Security-Policy (CSP) 标头利用 require-trusted-types-for 指令来强制执行可信类型。

Lighthouse 审核失败的原因

Lighthouse 报告警告,指出缺少 CSP 响应标头或用于缓解基于 DOM 的 XSS 的可信类型指令。
Lighthouse 报告警告,指出缺少 CSP 响应标头或用于缓解基于 DOM 的 XSS 的可信类型指令。

如果 CSP 标头与 require-trusted-types-for 指令一起设置,并且脚本作为其值,则审核将通过。如果未设置 CSP 标头,或者设置了 CSP 标头但缺少 Trusted Types 指令,则审核会失败。

配置 CSP 标头和 Trusted Types 指令以缓解基于 DOM 的 XSS

用户代理使用 require-trusted-types-for 指令来控制传递给 DOM XSS 接收器函数的数据。此指令的 script 值用于验证 DOM XSS 注入接收器函数是否仅接受由可信类型政策生成的类型,而不是允许字符串:

Content-Security-Policy: require-trusted-types-for 'script';