Entry № 1307
Trusted Types
Trusted Types 是什么?
Trusted Types浏览器 API 与 CSP 指令,要求危险的 DOM 接收器只能接受经策略审查的类型化值,从而防止基于 DOM 的 XSS。
Trusted Types 由 Google 设计并在 W3C 标准化,旨在消除基于 DOM 的 XSS。通过 CSP 的 require-trusted-types-for 与 trusted-types 指令启用后,浏览器会拒绝向 innerHTML、document.write、eval、script.src 等接收器传入普通字符串。代码必须经命名且经审计的策略构造 TrustedHTML、TrustedScript、TrustedScriptURL 等类型对象。这样所有危险 DOM 写入都收敛到一个可审查的小接口,大幅减少历史遗留的 XSS 接收器。Google、Bing、Shopify 等大型网站已大规模部署。
● 示例
- 01
Content-Security-Policy: require-trusted-types-for 'script'; trusted-types default;
- 02
将 element.innerHTML = userInput 改写为 element.innerHTML = policy.createHTML(userInput)。
● 常见问题
Trusted Types 是什么?
浏览器 API 与 CSP 指令,要求危险的 DOM 接收器只能接受经策略审查的类型化值,从而防止基于 DOM 的 XSS。 它属于网络安全的 应用安全 分类。
Trusted Types 是什么意思?
浏览器 API 与 CSP 指令,要求危险的 DOM 接收器只能接受经策略审查的类型化值,从而防止基于 DOM 的 XSS。
如何防御 Trusted Types?
针对 Trusted Types 的防御通常结合技术控制与运营实践,详见上方完整定义。