如何安全地将 script-src 与已知的 JSONP 端点主机(如 syndication.twimg.com)结合起来?
Posted
技术标签:
【中文标题】如何安全地将 script-src 与已知的 JSONP 端点主机(如 syndication.twimg.com)结合起来?【英文标题】:How to safely combine script-src with known JSONP endpoint hosters like syndication.twimg.com? 【发布时间】:2017-10-02 16:11:01 【问题描述】:我正在为包含嵌入式推文的页面使用内容安全策略,并且我收到了https://cdn.syndication.twimg.com
的报告,这在我的策略中是不允许的。
这是一个相当长的政策,但相关部分是
default-src 'none'; ... script-src 'self' apis.google.com platform.twitter.com; ...
但是,如果我将 cdn.syndication.twimg.com
或 *.twimg.com
添加到标头的 script-src
部分,当我通过 Google CSP evaluator 运行标头时会收到警告:
cdn.syndication.twimg.com
已知托管允许绕过此 CSP 的 JSONP 端点。
其他一些域也会引发此警告。
我似乎处于两难境地:要么我禁止 Twitter 运行脚本(需要吗?我真的不知道)并获得违反政策的报告,要么我正在运行一个几乎没用的CSP。
有没有办法解决这个难题?
【问题讨论】:
【参考方案1】:我不知道这是验证器错误还是细微的改进,但如果您将 script-src
更改为 script-src-elem
,验证器不会抱怨。
【讨论】:
谢谢,但目前大多数浏览器都不支持这个:developer.mozilla.org/en-US/docs/Web/HTTP/Headers/…以上是关于如何安全地将 script-src 与已知的 JSONP 端点主机(如 syndication.twimg.com)结合起来?的主要内容,如果未能解决你的问题,请参考以下文章
如何安全地将 Backbone.js 应用程序连接到数据库?
内容安全策略指令:“script-src'self'blob:filesystem:chrome-extension-resource:”在获取是否
拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“script-src 'self'”
内容安全策略:忽略 script-src 中的报告样本:指定严格动态
内容安全策略指令:“script-src 'self' blob: filesystem: chrome-extension-resource:” 获取时是不是