【问题标题】:The CSP frame-ancestors how to support Android Cordova appsCSP 框架祖先如何支持 Android Cordova 应用程序
【发布时间】:2018-05-22 14:54:04
【问题描述】:

我已在网络服务器 https://www.exapleA.com/test/ 上添加了 CSP 配置 frame-ancestors: 'self'

目前我有另一个 Android Cordova 应用程序,并在 JS 文件中使用 iframe 标签来加载以上网站页面,如下所示:

<iframe src="https://www.exapleA.com/test/"></iframe>

但我收到如下 CSP 错误:

拒绝在框架中显示“https://www.exapleA.com/test”,因为 祖先违反了以下内容安全策略指令: “框架祖先'自我'

您知道 Android Cordova 应用程序将所有静态文件添加到包装器中,因此没有域可以附加到“frame-ancstors”中。那么如何解决这个问题呢?

【问题讨论】:

  • 如果您可以控制网络服务器:再次删除 frame-ancestors: 'self'。正如您所指出的,该应用没有要添加到您的 CSP 的域名。
  • 但由于安全原因,我无法删除框架规则。
  • 如果运行应用程序的设备的 IP 地址是静态的,您可以将

标签: android cordova iframe content-security-policy iframe-app


【解决方案1】:

在您的 Cordova 配置 (config.xml) 中,您只需添加以下内容:

<preference name="Hostname" value="custom-domain.co" />
<allow-navigation href="http://custom-domain.co/*"/>

custom-domain.co 类似于您的 Android APK 的域。

然后,您将能够像这样配置您的网站:

frame-ancestors: 'self' custom-domain.co

有关更多信息,请参阅此链接(配置 -> 主机名部分):https://github.com/ionic-team/cordova-plugin-ionic-webview

【讨论】:

  • @albert 您能否确认上述解决方案是否适合您或您尝试过的任何其他替代方案?
猜你喜欢
  • 2021-06-02
  • 1970-01-01
  • 1970-01-01
  • 2016-07-27
  • 2017-01-29
  • 1970-01-01
  • 2021-05-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多