HTTP和HTTPS iframe

时间:2010-06-29 21:43:09

标签: http iframe https cross-domain

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

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

3 个答案:

答案 0 :(得分:51)

在通过纯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登录来破坏您尝试实施的安全措施。

答案 1 :(得分:6)

@Bruno - 我同意,但我想指出,即使检查源代码 - 对页面的要求也是如此 - 可能不足以确保安全性或正确/预期的目标,因为这通常是< strong>最初服务的源文本。除非我严重错误,否则可以使用页内或甚至页外的javascript代码轻松更改(如果有人真的想让它几乎无法找到,那么它本身就可以被混淆)。也就是说, IF 一个用户有一个合适的浏览器,我认为他们可能能够 - 如果他们开始时可疑 - 检查iframe的来源以确定该代码的来源,然后确定他们是否信任来源...不是真正合理的期望。

尽管所有这些都可以通过适当的调试器和/或软件/ DOM检查员以及良好的数字弯头润滑脂确定,但OP无法合理地期望每个人都这样做(如果任何人

答案 2 :(得分:4)

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