Sentry
能够通过设置适当的 HTTP header
来收集有关 Content-Security-Policy (CSP)
违规行为以及 Expect-CT
和 HTTP Public Key Pinning (HPKP)
失败(failures
)的信息,这会让违规/失败(violation/failure)
发送到 report-uri
中指定的 Sentry
端点。
Content-Security-Policy (CSP)
:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-PolicyExpect-CT
:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Expect-CTHTTP Public Key Pinning (HPKP)
:https://developer.mozilla.org/en-US/docs/Web/HTTP/Public_Key_Pinning
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-src
或 connect-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 开源版生产截图