Content-Security-Policy: trusted-types 指令
HTTP Content-Security-Policy
(CSP) trusted-types
指令指示用户代理限制创建 Trusted Types 策略——这些函数用于构建不可伪造的、类型化的值,旨在传递给 DOM XSS 接收器以代替字符串。
结合 require-trusted-types-for
指令,这允许作者定义规则,以保护写入 DOM 的值,从而将 DOM XSS 攻击面缩小到 Web 应用程序代码库的小型、隔离的部分,便于它们的监控和代码审查。此指令声明了一个允许创建自 Trusted Types API 中使用 trustedTypes.createPolicy
创建的 Trusted Type 策略名称的白名单。
语法
http
Content-Security-Policy: trusted-types;
Content-Security-Policy: trusted-types 'none';
Content-Security-Policy: trusted-types <policyName>;
Content-Security-Policy: trusted-types <policyName> <policyName> 'allow-duplicates';
- <policyName>
-
有效的策略名称只能包含字母数字字符,或
-#=_/@.%
中的一个。策略名称中的星号 (*
) 指示用户代理允许任何唯一的策略名称 (allow-duplicates
可能会进一步放宽此限制)。 'none'
-
禁止创建任何 Trusted Type 策略(与未指定任何 <policyName> 相同)。
'allow-duplicates'
-
允许创建已使用过的名称的策略。
示例
js
// Content-Security-Policy: trusted-types foo bar 'allow-duplicates';
if (typeof trustedTypes !== "undefined") {
const policyFoo = trustedTypes.createPolicy("foo", {});
const policyFoo2 = trustedTypes.createPolicy("foo", {});
const policyBaz = trustedTypes.createPolicy("baz", {}); // Throws and dispatches a SecurityPolicyViolationEvent.
}
规范
规范 |
---|
Trusted Types # trusted-types-csp-directive |
浏览器兼容性
加载中…
另见
Content-Security-Policy
- 跨站脚本 (XSS)
- 使用 Trusted Types 阻止基于 DOM 的跨站脚本漏洞
- 使用 DOMPurify XSS 净化器的 Trusted Types
- Trusted Types polyfill