使用信任型別防範 DOM 型跨網站指令碼攻擊

Trusted Types 是一項網頁平台安全功能,可封鎖風險較高的插入點 (例如 .innerHTML) 使用未驗證的字串值,有助於防範特定 DOM 型 XSS 攻擊。如果系統封鎖有風險的插入點,就會發出違規快訊。

Content-Security-Policy (CSP) 標頭會使用 require-trusted-types-for 指令強制執行 Trusted Types。

Lighthouse 稽核失敗的原因

Lighthouse 報告警告缺少 CSP 回應標頭,或缺少可減輕 DOM 型 XSS 攻擊的 Trusted Types 指令。
Lighthouse 報表警告,指出缺少 CSP 回應標頭,或缺少可降低 DOM 型 XSS 攻擊風險的 Trusted Types 指令。

如果 CSP 標頭與 require-trusted-types-for 指令和指令碼 (做為值) 一併設定,稽核就會通過。如果未設定 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';