我正在尝试为 Wordpress 实现 Content-Security-Policy 标头,但无法识别它需要访问的所有 URL。具体来说,我尝试添加标头:
Header always set Content-Security-Policy "default-src 'self' https://blogname.com:*"
但是,当我设置这个时,“编辑/创建帖子”页面特别会抛出一堆看起来与以下内容相关的错误:
- 需要下载的第三方字体
- 其他针对 javascript 的 AJAX 请求(例如用于编辑器)
- 其他内容,可能与插件有关
如何轻松识别 Wordpress 及其所有插件所需的所有第三方 URL,以便将它们添加到 CSP 标头?
答案1
Content-Security-Policy-Report-Only
首先使用标题(仅内容安全政策报告)。这将允许您测试策略并对其进行调整。它的工作原理与“常规”CSP 标头相同,只是不会阻止策略违规行为,而只是报告。
您可以使用免费服务https://report-uri.io/接收报告。
答案2
这项政策对我来说很有效:
Header always set Content-Security-Policy "default-src 'unsafe-inline' 'unsafe-eval' 'self'; font-src 'self' data: https://fonts.gstatic.com:443; img-src 'self' data: https://secure.gravatar.com:443; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com:443"
Twitter 示例来自:
https://www.owasp.org/index.php/Content_Security_Policy_Cheat_Sheet#Mixed_Content_Policy
作为起点特别有用。