Cloudflare 的客户端安全有助于管理网站访问者加载的客户端资源(包括脚本及其连接),并提供在 HTTP 流量中最近检测到的 Cookie ↗ 的可见性。当资源发生变化或被视为恶意资源时,客户端安全会触发警报通知。
客户端安全通过在站点的响应中添加内容安全策略 (CSP) HTTP 标头来工作。CSP 是一种浏览器原生机制,它控制页面允许加载哪些资源,以及在资源违反策略时向何处发送报告。Cloudflare 将两种类型的 CSP 标头用于不同的目的:
- 用于资源监控(脚本和连接)
- 用于强制执行内容安全规则或记录违反这些规则的行为
下表对比了用于监控资源和应用内容安全规则的 CSP HTTP 标头:
| 资源监控 HTTP 标头 | 内容安全规则 HTTP 标头 |
|---|---|
content-security-policy-report-only |
content-security-policy-report-only(记录规则)content-security-policy(允许规则) |
| 自动——启用监控时开启 | 手动——通过您定义的规则创建 |
| 添加到 HTML 响应的样本中 | 添加到 100% 的匹配响应中(未采样) |
| 报告所有检测到的脚本和连接 | CSP 指令来自您的白名单 |
| 浏览器向 Cloudflare 发送违规报告 | 记录规则仅报告违规 允许规则阻止不被允许的资源 |
当您开启资源监控时,Cloudflare 会自动在 HTML 响应样本中添加 content-security-policy-report-only HTTP 标头。此“仅报告”标头不会阻止任何内容。它使用的 CSP 指令会让浏览器针对检测到的脚本和连接生成违规报告。有关标头格式的详细信息,请参阅 CSP HTTP 标头格式。
根据这些报告,Cloudflare 会建立在您应用程序上运行的所有脚本及其与第三方端点建立的连接的列表。Cloudflare 还会监控入口和出口 HTTP 流量中的 Cookie,无论是源站服务器设置的还是访问者浏览器设置的。
启用资源监控后,您无法关闭监控标头。由于该标头是添加到响应样本中的,因此在部署脚本或 Cookie 与其数据显示在资源监控仪表板之间可能会有小延迟。
客户端资源监控仪表板显示活动脚本、连接和 Cookie 的列表。**All Reported Scripts(所有已报告的脚本)**和 **All Reported Connections(所有已报告的连接)**仪表板分别显示在您的域名中检测到的脚本和连接的完整列表,包括不常用和不活动的脚本及连接。
当您创建内容安全规则时,Cloudflare 会根据您的允许和记录规则生成 CSP 指令:
- 记录规则将指令添加到
content-security-policy-report-onlyHTTP 标头,报告违规行为而不阻止资源。 - 允许规则将指令添加到
content-security-policyHTTP 标头,主动阻止您的白名单中不存在的资源。
与用于资源监控的标头不同,这些 HTTP 标头仅应用于与您在每条规则中定义的表达式匹配的响应,并且未进行采样。您可以通过配置内容安全规则来完全控制这些标头。
拥有 Client-Side Security Advanced 的客户可以使用基于威胁情报的其他分类机制,来确定脚本或由脚本发出的连接是否为恶意。更多信息请参阅恶意脚本和连接检测。
有关客户端安全和资源监控的更多背景信息,请参阅我们的博客文章 ↗。