SecurityPolicyViolationEvent

Baseline 广泛可用 *

此特性已成熟稳定,适用于多种设备和浏览器版本。自 2018 年 10 月起,它已在各浏览器中可用。

* 此特性的某些部分可能存在不同级别的支持。

注意:此功能在 Web Workers 中可用。

SecurityPolicyViolationEvent 接口继承自 Event,代表当 securitypolicyviolation 事件在 ElementDocumentworker 上触发时,其 内容安全策略 (CSP) 被违反时发送的事件对象。

Event SecurityPolicyViolationEvent

构造函数

SecurityPolicyViolationEvent()

创建一个新的 SecurityPolicyViolationEvent 对象实例。

实例属性

SecurityPolicyViolationEvent.blockedURI 只读

一个字符串,表示因违反策略而被阻止的资源的 URI。

SecurityPolicyViolationEvent.columnNumber 只读

在文档或 worker 中发生违规的列号。

SecurityPolicyViolationEvent.disposition 只读

一个字符串,指示用户代理被配置为强制执行策略还是仅报告策略违规。

SecurityPolicyViolationEvent.documentURI 只读

一个字符串,表示发生违规的文档或 worker 的 URI。

SecurityPolicyViolationEvent.effectiveDirective 只读

一个字符串,表示被违反的指令。

SecurityPolicyViolationEvent.lineNumber 只读

在文档或 worker 中发生违规的行号。

SecurityPolicyViolationEvent.originalPolicy 只读

一个字符串,包含导致违规的策略。

SecurityPolicyViolationEvent.referrer 只读

一个字符串,表示策略被违反的资源的引荐来源 URL,或者为 null

SecurityPolicyViolationEvent.sample 只读

一个字符串,表示导致违规的资源的样本,通常是前 40 个字符。这仅在资源是内联脚本、事件处理程序或样式时才会填充 — 导致违规的外部资源不会生成样本。

SecurityPolicyViolationEvent.sourceFile 只读

如果违规是脚本导致的,则此属性将是脚本的 URL;否则,它将是 null。如果此属性不为 null,则 columnNumberlineNumber 都应具有非空值。

SecurityPolicyViolationEvent.statusCode 只读

一个数字,表示发生违规的文档或 worker 的 HTTP 状态码。

SecurityPolicyViolationEvent.violatedDirective 只读

一个字符串,表示被违反的指令。这是 effectiveDirective 的历史别名。

示例

js
document.addEventListener("securitypolicyviolation", (e) => {
  console.log(e.blockedURI);
  console.log(e.violatedDirective);
  console.log(e.originalPolicy);
});

规范

规范
内容安全策略级别 3
# report-violation

浏览器兼容性

另见