【问题标题】:HTTPS iframe within an HTTP page, how can I stop that?HTTP页面中的HTTPS iframe,我该如何阻止它?
【发布时间】:2016-04-26 22:41:53
【问题描述】:

我正在考虑购买机票,我必须在 http:// 页面中输入我的信用卡详细信息,如下所示:

如果我查看源代码,这实际上是一个带有 HTTPS 源的 iframe,所以这实际上是安全的,但非技术用户无法知道这一点。显然,这太可怕了(即使对于精通技术的用户也是如此)。

现在,我的问题是,如果我是提供此 iframe 的网站(在这种情况下由 Visa 验证),是否有办法强制现代浏览器不允许我的页面在 http 上用作 iframe: // 页面,但仍允许将其用作 https:// 页面上的 iframe?有没有真正应该在这里使用的由 Visa 验证的技术?

【问题讨论】:

    标签: security iframe https


    【解决方案1】:

    我正在考虑购买机票,我必须在 http:// 页面中输入我的信用卡详细信息

    哎哟!有人违反了他们的商家协议中的 PCI-DSS 条款。

    如果我查看源代码,这实际上是一个带有 HTTPS 源的 iframe,因此这实际上是安全的,但非技术用户无法知道这一点。

    确实如此。您必须查看所有源代码,包括父页面上的每一段脚本,以确保没有任何干扰 iframe(例如通过点击劫持)以及您看到的图像在浏览器页面中实际上是安全 iframe。并确保没有从同一个域打开其他选项卡并引用窗口以跨文档脚本进入它......一个非初学者。

    如果我是提供此 iframe 的网站(在这种情况下由 Visa 验证),有没有办法可以强制现代浏览器不允许我的页面在 http:// 页面上用作 iframe,但仍然允许它在 https:// 页面上用作 iframe 吗?

    我相信你可以使用Content Security Policy Level 2 来做到这一点,例如使用标题:

    Content-Security-Policy: frame-ancestors https:
    

    但是支持不完整:在撰写本文时,即使是最新的 IE 和 Safari 也不支持它,而且显然在编写 3-D 安全实现时它还不存在。不过,如果它只是偶尔抱怨一下,就足以让不知情的商家知道他们搞砸了支付集成。

    他们当时可能能够做的另一件事是检查Referer标头中的http:地址。仍然不可靠(并且可能很难为所有可能的流程工作,包括重定向和弹出,以及中间重定向),但可能会有所帮助。

    【讨论】:

      猜你喜欢
      • 2015-08-07
      • 1970-01-01
      • 1970-01-01
      • 2012-11-22
      • 2015-02-28
      • 2019-12-28
      • 2018-02-03
      • 2015-06-24
      相关资源
      最近更新 更多