【问题标题】:How to display a HTTPS page with an iframe in Ionic framework?如何在 Ionic 框架中显示带有 iframe 的 HTTPS 页面?
【发布时间】:2015-04-24 15:58:27
【问题描述】:

我的 Ionic 应用程序中有一个页面,其中显示了一个 WebView(带有 iframe),问题是它仅适用于普通的 HTTP 网页,它几乎不适用于任何 HTTPS 页面,例如Google、Twitter 等。出于某种原因,似乎在应用程序中工作的唯一 HTTPS 页面是 https://www.httpsnow.org/

代码行就是这样:

<iframe src="https://www.example.com/" height="400px" width="350px"></iframe>

我需要在我的应用程序中显示 HTTPS WebViews,最好不必使用 Cordova 的 inappbrowser。有没有办法用 iframe 或其他方式做到这一点?

【问题讨论】:

    标签: javascript angularjs iframe ionic-framework


    【解决方案1】:

    大多数大型组织,包括 Google、Twitter 等,都会将 X-Frame-Options 标头设置为 SAMEORIGIN 以防止框架,因为它过去曾被滥用。

    https://developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options

    出于安全原因,这不是您可以覆盖的内容。

    【讨论】:

      【解决方案2】:

      我们在用于聊天机器人的 ionic 应用程序中遇到了类似的问题,它连接到 Django 框架聊天机器人引擎后端。对于这样做是安全的视图,我们通过装饰视图来解决这个问题:

      @xframe_options_exempt
      这会从响应标头中删除 X-Frame-Options。

      这里的 Django 文档信息:https://docs.djangoproject.com/en/3.0/ref/clickjacking/#setting-x-frame-options-for-all-responses

      还有其他方法可以更安全地解决此问题。

      【讨论】:

        【解决方案3】:

        您不能在 iframe 上设置 X-Frame-Options。这是由您请求资源的域设置的响应标头。

        尝试在您的源域中添加 Cross-origin-allow 以接受所有域请求。

        而不是 iframe,而是将用户重定向到在他们的浏览器上使用您的链接,而不是从应用程序(这对用户不友好)。

        【讨论】:

          猜你喜欢
          • 2011-02-25
          • 1970-01-01
          • 2013-02-03
          • 2018-11-12
          • 2012-11-29
          • 2016-08-23
          • 1970-01-01
          • 1970-01-01
          • 2016-09-14
          相关资源
          最近更新 更多