我正在尝试将 Content-Security-Policy (CSP) 标头用于具有社交媒体按钮(youtube、twitter、facebook)的网站。但是,这些小部件在指定不明确的第 3 方站点列表上运行脚本。社交媒体网站并未指定其脚本将访问的所有网站,因此您需要运行您的页面并逐一查看并查看被阻止的域,然后将它们添加到 CSP 标头中。
这似乎非常脆弱。如果社交媒体网站更改其脚本并添加新域,则页面将中断,因为浏览器将阻止对新域的访问。
CSP 在阻止 XSS 方面非常有效,但似乎社交媒体网站不提供设计用于使用它的按钮/小部件。至少,他们应该只需要一个域,并且应该具体说明该域是什么。
我最终得到一个 CSP 标头,例如:
内容安全策略:default-src 'self' https://www.google.com http://csi.gstatic.com http://www.google-analytics.com https://apis.google.com https://accounts.google.com https://platform.twitter.com https://www.youtube。com http://platform.twitter.com;img-src“自我”数据:https ://www.google.com http://www.google-analytics.com http://ssl.gstatic.com https://ssl.gstatic.com数据:;style-src 'self' https://fonts.googleapis.com 'unsafe-inline'; font-src 'self' https://fonts.gstatic.com数据:
有一个更好的方法吗?