Content Security Policy¶
HTTP 响应头 Content-Security-Policy 允许站点管理者控制用户代理能够为指定的页面加载哪些资源。除了少数例外情况,设置的政策主要涉及指定服务器的源和脚本结束点。这将帮助防止跨站脚本攻击(Cross-Site Script)。
更多详情,可参考 Content-Security-Policy
多内容安全策略¶
CSP 允许在一个资源中指定多个策略,包括通过 Content-Security-Policy 头,以及 Content-Security-Policy-Report-Only 头和 meta 组件。
例子¶
// header
Content-Security-Policy: connect-src http://example.com/;
script-src http://example.com/
// meta tag
<meta http-equiv="Content-Security-Policy" content="connect-src http://example.com/;
script-src http://example.com/">
如何在使用 CSP 的网站应用中,接入 RUM SDK¶
如果您的网站应用正在使用 CSP,接入观测云 RUM SDK 之后,可能会在浏览器中出现安全违规的提示,你需要将以下 URL 添加到对应的指令中:
Datakit 上报 URLs¶
依赖于 RUM SDK 初始化配置中的 datakitOrigin
选项:
在 CSP 安全指令中,请添加如下条目:
web worker¶
如果你开启了 RUM SDK Session Replay功能或者 RUM 初始化配置中添加了compressIntakeRequests配置,请确保通过添加以下 worker-src 条目:
在 SDK 版本 >=3.2.0
开始支持自己托管 webwork 文件。在 SDK 配置中添加 workerUrl
来添加托管地址。可以通过以下两种方式来获取 worker 文件
- 从观测云官方地址 https://static.guance.com/browser-sdk/v3/worker.js 下载
- 安装 @cloudcare/browser-worker NPM 包并使用构建工具将其包含在构建资产中(参见 Webpack 4、Webpack 5、Vite 和 Rollup 的文档)。
必要条件:
- 将文件托管在与您的 Web 应用程序相同的来源上。由于浏览器限制,它无法托管在单独的域(例如,第三方 CDN 主机)或其他方案上。
- 保证 SDK 版本
>=3.2.0
CDN 地址¶
如果您正在使用 CDN 异步或 CDN 同步的方式引入 RUM SDK,请添加以下 script-src 条目: