CSP:trusted-types
HTTP Content-Security-Policy
(CSP) trusted-types
Experimental 指令指示用户代理限制创建受信任类型策略 - 用于构建不可伪造的类型化值的函数,这些函数旨在传递给 DOM XSS 接收器以代替字符串。
与 require-trusted-types-for
指令一起,这允许作者定义保护写入 DOM 值的规则,从而将 DOM XSS 攻击面缩减到 Web 应用程序代码库的少量隔离部分,方便监控和代码审查。此指令声明创建的受信任类型策略名称的允许列表,这些名称使用 Trusted Types API 中的 trustedTypes.createPolicy
创建。
语法
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'
-
禁止创建任何受信任类型策略(与不指定任何 <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-csp-directive |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。
另请参见
内容安全策略
- 跨站点脚本 (XSS)
- 使用受信任类型阻止基于 DOM 的跨站点脚本漏洞
- 受信任类型与 DOMPurify XSS 净化器
- 受信任类型 polyfill