内容安全政策 (CSP)是一种
以限制允许加载和加载的资源和脚本,
。要启用 CSP,您可以在Content-Security-Policy
来自网络服务器的 HTTP 响应。
配置 CSP 有两种标准方法:
指定可在网页上注入其资源的网域许可名单。
指定一个随机 Nonce,系统必须使用该 Nonce 标记页面上的资源 订单。此方法称为严格 CSP。
由于 Google 发布商代码 (GPT) 使用的网域会 则我们仅支持严格的 CSP(选项 2)。这种方法无需 维护一份可能过时的域名的滚动列表, 网站。
设置使用 GPT 的 CSP
在您的网络服务器上启用 CSP。
按照采用严格的 CSP,按照 设置 CSP 标头并将 Nonce 应用于网页上的每个脚本标记 包括
gpt.js
。GPT 专门支持下列 CSP 指令:Content-Security-Policy: object-src 'none'; script-src 'nonce-{random}' 'unsafe-inline' 'unsafe-eval' 'strict-dynamic' https: http:; base-uri 'none'; report-uri https://your-report-collector.example.com/
如果更宽松的政策适合您的应用场景,您可以选择它。更多 我们可能会取消限制性政策,恕不另行通知。
启用跨网域呈现。
广告 iframe 可以加载 CSP。由于同一网域 iframe 会继承顶级窗口的 CSP,而 GPT 无法控制广告素材的内容、同网域 通常情况下,广告素材将无法与 CSP 标头正常配合使用。
要为所有广告素材启用跨网域呈现,请执行
googletag.pubads().setForceSafeFrame(true)
然后再加载任何广告位。<!doctype html> <html> <head> <meta charset="utf-8"> <title>Hello GPT</title> <script src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" nonce="KC7tcz53FHqumKP1" async></script> <script nonce="KC7tcz53FHqumKP1"> window.googletag = window.googletag || {cmd: []}; googletag.cmd.push(function() { googletag.pubads().setForceSafeFrame(true); }); </script> </head>
测试
我们建议您先通过设置
Content-Security-Policy-Report-Only
标头(而非
Content-Security-Policy
。标头报告了违规问题,但仍然允许
它们在网页上