内容安全策略框架祖先。 iframe 不会在 iOS10 中加载内容
Posted
技术标签:
【中文标题】内容安全策略框架祖先。 iframe 不会在 iOS10 中加载内容【英文标题】:Content Security Policy frame-ancestors. Iframe wont load content in iOS10 【发布时间】:2016-09-28 08:40:53 【问题描述】:我们的 Cordova 应用不会在 ios 10 上加载 iframe 内容。
我们有一些 iframe 显示来自应用内网页的某些信息,因此我们不必复制它们。
在以下任何 iOS 版本中都可以正常工作。但是自从我们的设备更新后,应用程序拒绝加载资源。
Refused to load http://.../.../X.html because it does not appear in the frame-ancestors directive of the Content Security Policy
我尝试编辑我的元 Content-Security-Policy 标记以允许来自此资源,但这不起作用。我想这个问题是关于网络服务器告诉我的应用程序/浏览器不允许这个来源的,但遗憾的是我对那个话题没有那么深入。我所知道的是,Web 服务器将 X-Frame-Options 设置为 SAMEORIGIN,但这也应该为其他 iOS 版本禁用它..
那么在这种情况下如何绕过安全配置,让它像在早期版本的 iOS 中一样工作?
如果您需要更多信息,请告诉我,我不知道我是否遗漏了什么。
【问题讨论】:
【参考方案1】:我所知道的是网络服务器将 X-Frame-Options 设置为 SAMEORIGIN,但这也应该为其他 iOS 版本禁用它。
除了现有的标头:
X-Frame-Options: SAMEORIGIN
添加其内容安全策略等效项:
Content-Security-Policy: frame-ancestors 'self'
请牢记以下注意事项:
关于支持的一句话。尚不支持所有浏览器,Chrome 40+ 和 FF 35+ 支持,但也将默认为 X-Frame-Options(如果存在)。 Spec说,CSP应该优先。这在 CSP 位于
<meta>
标记中时不起作用,并且在使用 Content-Security-Policy-Report-Only 时不起作用。
参考文献
Content Security Policy Cheat Sheet - OWASP【讨论】:
我无法真正验证这个答案。项目早已不复存在。我们该怎么做?以上是关于内容安全策略框架祖先。 iframe 不会在 iOS10 中加载内容的主要内容,如果未能解决你的问题,请参考以下文章