2010-06-29 255 views
42

我正在创建一个小部件,我想让其他人使用它。 iframe通过HTTP加载 - 但我想允许用户通过HTTPS登录。即通过SSL发送登录请求。HTTP和HTTPS iframe

这是否允许在同源策略中使用?即情景是,用户可以将我的JavaScript集成到他们的网站,窗口小部件打开,我想让他们通过HTTPS登录?

+0

我回答了几个独特的方法来做到这一点:http://stackoverflow.com/questions/18327314/how-to-allow-http-content-within-an-iframe-on-a-https-site/25189561#25189561 – 2016-08-01 12:37:24

回答

50

在通过普通HTTP(或混合内容)提供的页面内嵌入带有通过HTTPS提供的内容的iframe通常是不好的做法。原因在于没有好的方法让用户检查他们使用他们打算使用的HTTPS站点(除非用户真的想检查页面的来源)。

攻击者很可能会取代内容您服务是这样的:

<iframe src="https://your.legitimate.example/loginframe" /> 

有:

<iframe src="https://rogue.site.example/badloginframe" /> 

甚至:

<iframe src="http://rogue.site.example/badloginframe" /> 

这是防不胜防的用户,并通过启用通过HTTPS登录来击败您要设置的安全措施。

5

@布鲁诺 - 我同意,但我想指出,即使检查页面的来源 - 要求如此 - 页面可能不足以确保安全性或适当/预期的目的地,因为这通常是最初为提供源文本。除非我严重错误,否则可以通过页内或页外JavaScript代码轻松更改(如果有人真的想让它不可能找到,它本身可能会被混淆)。这就是说,IF用户拥有一个合适的浏览器,我认为他们可能能 - 如果他们怀疑与开始 - 检查iframe的来源,以确定代码的来源,然后确定他们是否相信来源...不是一个合理的期望。

虽然这一切可以用适当的调试器和/或软件/ DOM督察和数字苦劳的好帮扶确定的,OP不能合理地期望每个人都这样做(如果在所有)

+3

99.9%的互联网用户不知道或不屑检查页面源码。我明白你如何说服我的父亲检查源代码,更不用说使用调试器了。 – Krumia 2014-09-22 04:39:57

3

我已经做了一些测试。如果您使用https将https页面链接到另一个域名,则需要有效的SSL证书。