我们的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一样?
请告诉我,如果您需要更多信息,我无法判断我是否遗漏了某些内容。
答案 0 :(得分:1)
我所知道的是,Web服务器将X-Frame-Options设置为SAMEORIGIN,但是也应该为其他iOS版本禁用它。
除现有标题外:
X-Frame-Options: SAMEORIGIN
添加其内容安全策略等效项:
Content-Security-Policy: frame-ancestors 'self'
请记住以下警告:
关于支持的一句话。尚未支持所有浏览器,Chrome 40+和FF 35+支持,但如果存在,也会默认为X-Frame-Options。规范说,CSP应该优先考虑。当CSP位于
<meta>
标记中时,这将不起作用,并且在使用Content-Security-Policy-Report-Only时无效。
<强>参考强>