HTTP和HTTPS iframe

我正在创build一个小部件,我想让其他人使用它。 iframe通过HTTP加载 – 但我想让用户通过HTTPSlogin。 即通过SSL发送login请求。

这是否允许在同源政策内? 即情况是,用户可以集成我的JavaScript到他们的网站,小工具打开,我想让他们通过HTTPSlogin?

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

攻击者可以很好地replace你所服务的内容:

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

有:

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

甚至:

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

这对用户来说很难检测到,并且通过启用通过HTTPSlogin来击败您要设置的安全措施。

@布鲁诺 – 我同意,但是我想指出的是,即使检查页面的来源 – 要求如此 – 可能不足以确保安全性或适当的/预期的目的地,因为这通常是原始服务的源文本。 除非我严重错误,否则可以通过页内甚至是非页面的JavaScript代码轻易改变(如果有人真的想让它不可能find,本身可以被混淆)。 也就是说, 如果用户有适当的浏览器, 我认为他们可能能够 – 如果他们开始怀疑 – 检查iframe的来源以确定代码的来源,然后确定他们是否信任来源。 ..不是一个合理的期望。

尽pipe所有这些都可以通过适当的debugging器和/或软件/ DOM检查员和数字弯头润滑脂的良好帮助来确定,但是OP不能合理地期望每个人都这样做(如果有人的话)

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