HTTP和HTTPS iframe

Tom*_*Tom 44 https iframe http cross-domain

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

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

Bru*_*uno 51

在通过普通HTTP(或混合内容)提供的页面中嵌入通过HTTPS提供的内容的iframe通常是不好的做法.这样做的原因是用户没有好的方法来检查他们是否正在使用他们想要的HTTPS站点(除非用户真的想要检查页面的来源).

攻击者可以很好地替换您提供的内容,如下所示:

<iframe src="https://your.legitimate.example/loginframe" />
Run Code Online (Sandbox Code Playgroud)

有:

<iframe src="https://rogue.site.example/badloginframe" />
Run Code Online (Sandbox Code Playgroud)

甚至:

<iframe src="http://rogue.site.example/badloginframe" />
Run Code Online (Sandbox Code Playgroud)

这对于用户来说非常难以检测,并且通过HTTPS启用登录来破坏您尝试实施的安全措施.


Cod*_*key 6

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

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

  • 99.9%的互联网用户不知道或懒得检查页面来源.我看到你如何说服我的父亲检查源代码,更不用说使用调试器了. (3认同)