内容安全策略框架的祖先。iframe 不会在 iOS10 中加载内容

Sil*_*lom 0 iframe ios cordova content-security-policy ios10

我们的 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
Run Code Online (Sandbox Code Playgroud)

我尝试编辑我的元内容安全策略标签以允许来自此资源,但这不起作用。我想这个问题是关于网络服务器告诉我的应用程序/浏览器不允许这个来源的,但遗憾的是我对这个主题的了解并不深。我所知道的是,Web 服务器将 X-Frame-Options 设置为 SAMEORIGIN,但这也应该对其他 iOS 版本禁用它。

那么在这种情况下如何绕过安全配置,使其像早期版本的 iOS 一样工作呢?

如果您需要更多信息,请告诉我,我不知道我是否遗漏了某些内容。

Pau*_*tte 5

我所知道的是,Web 服务器将 X-Frame-Options 设置为 SAMEORIGIN,但这也应该对其他 iOS 版本禁用它。

除了现有的标头之外:

X-Frame-Options: SAMEORIGIN
Run Code Online (Sandbox Code Playgroud)

添加其等效的内容安全策略:

Content-Security-Policy: frame-ancestors 'self'
Run Code Online (Sandbox Code Playgroud)

请记住以下注意事项:

关于支持的一句话。并非所有浏览器都支持,Chrome 40+ 和 FF 35+ 支持,但也会默认使用 X-Frame-Options(如果存在)。Spec 表示,CSP 应优先。当 CSP 位于标记中时,这将不起作用<meta>,并且在使用 Content-Security-Policy-Report-Only 时,这将不起作用。

参考