【问题标题】:Content Security Policy frame-ancestors. Iframe wont load content in iOS10内容安全策略框架祖先。 iframe 不会在 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 中一样工作?

如果您需要更多信息,请告诉我,我不知道我是否遗漏了什么。

【问题讨论】:

    标签: ios cordova iframe ios10 content-security-policy


    【解决方案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 时不起作用。

    参考文献

    【讨论】:

    • 我无法真正验证这个答案。项目早已不复存在。我们该怎么做?
    猜你喜欢
    • 2021-10-31
    • 2019-09-22
    • 1970-01-01
    • 2018-06-05
    • 2019-05-09
    • 1970-01-01
    • 2019-05-25
    • 2018-01-14
    • 1970-01-01
    相关资源
    最近更新 更多