我正在考虑购买机票,而且我必须在http://页面输入我的信用卡详细信息,如下所示:
如果我查看源代码,这实际上是一个带有HTTPS源的iframe,所以这实际上是安全的,但是一个非技术娴熟的用户无法知道这一点。显然,这很糟糕(即使是精通技术的用户)。
现在,我的问题是,如果我是提供此iframe的网站(在这种情况下通过Visa验证),有没有办法可以强制现代浏览器不允许我的网页用作http上的iframe: //页面,但仍然允许它在https://页面上用作iframe?是否真的应该使用Visa验证技术?
答案 0 :(得分:6)
我正在寻找购买机票,而我必须在http://页面输入我的信用卡详情
哎哟!有人打破了商家协议的PCI-DSS条款。
如果我查看源代码,这实际上是一个带有HTTPS源的iframe,所以这实际上是安全的,但是一个非技术娴熟的用户无法知道这一点。
事实上。您必须查看所有源代码,包括父页面上的每个脚本,以确保没有任何干扰iframe(例如通过点击劫持)和您看到的图像在浏览器页面中实际上是安全的iframe。并确保没有其他选项卡从同一个域打开,并引用该窗口以跨文档脚本进入它...非首发。
如果我是提供此iframe的网站(在这种情况下通过Visa验证),是否有一种方法可以强制现代浏览器不允许我的网页在http://页面上用作iframe,但仍然允许它在https:// pages?
上用作iframe
我相信你可以使用Content Security Policy Level 2来做,例如使用标题:
Content-Security-Policy: frame-ancestors https:
然而,支持是不完整的:在撰写本文时,即使最新的IE和Safari也不支持它,显然它在编写3-D Secure实现时并不存在。不过,如果只是抱怨某些时候足以让一个不知情的商家知道他们搞砸了他们的付款整合。
他们当时可能做的另一件事就是检查Referer标头中的http:地址。仍然不可靠(并且可能很难为所有可能的流量工作,包括重定向和弹出,以及中间重定向),但可能有所帮助。