Sentry 监控 - Security Policy 安全策略报告

时间:2024-02-21 13:16:15

系列

目录

  • Content-Security-Policy
  • Expect-CT
  • HTTP Public Key Pinning
  • 附加配置
  • Sentry 21.8.0 开源版生产截图

Sentry 能够通过设置适当的 HTTP header 来收集有关 Content-Security-Policy (CSP) 违规行为以及 Expect-CTHTTP Public Key Pinning (HPKP) 失败(failures)的信息,这会让违规/失败(violation/failure)发送到 report-uri 中指定的 Sentry 端点。

Content-Security-Policy

Content-Security-Policy (CSP) 是一种安全标准,有助于防止跨站点脚本 (XSS)点击劫持(clickjacking)和其他由于在受信任的网页上下文中执行恶意内容而导致的代码注入攻击。它由浏览器厂商强制执行,Sentry 支持使用标准报告 Hook 捕获 CSP 违规。

要在 Sentry 中配置 CSP 报告,您需要从服务器发送一个 header 来描述您的策略,并指定经过身份验证的 Sentry 端点:

Content-Security-Policy: ...; report-uri https://o0.ingest.sentry.io/api/0/security/?sentry_key=examplePublicKey

或者,您可以设置 CSP 报告以简单地发送报告而不是实际执行策略:

Content-Security-Policy-Report-Only: ...; report-uri https://o0.ingest.sentry.io/api/0/security/?sentry_key=examplePublicKey

在定义您的策略时,确保 sentry.io 或您的自托管 sentry 域 在您的 default-srcconnect-src 策略中很重要,否则浏览器将阻止提交违反策略的请求。

有关更多信息,请参阅 MDN 上的文章。

Expect-CT

Certificate Transparency (CT) 是一种安全标准,可帮助跟踪和识别有效证书,允许识别恶意颁发的证书。

要在 Sentry 中配置报告,您需要从服务器配置 Expect-CT header:

Expect-CT: ..., report-uri="https://o0.ingest.sentry.io/api/0/security/?sentry_key=examplePublicKey"

有关更多信息,请参阅 MDN 上的文章。

HTTP Public Key Pinning

HTTP Public Key Pinning (HPKP) 是一种安全功能,它告诉 Web 客户端将特定的加密公钥(public key)与某个 Web 服务器相关联,以降低使用伪造证书进行 MITM 攻击的风险。 它由浏览器厂商强制执行,Sentry 支持使用标准报告 Hook 捕获违规行为。

要在 Sentry 中配置 HPKP 报告,您需要从服务器发送一个 header 来描述您的策略,并指定经过身份验证的 Sentry 端点:

Public-Key-Pins: ...; report-uri="https://o0.ingest.sentry.io/api/0/security/?sentry_key=examplePublicKey"

有关更多信息,请参阅 MDN 上的文章。

附加配置

除了 sentry_key 参数,您还可以在 report URI 的查询字符串中传递以下内容:

sentry_environment

  • 环境名称(例如 production)。

sentry_release

  • 应用程序的版本。

Sentry 21.8.0 开源版生产截图