安全弹出登录可能吗?

我有一个隐藏在每个页面上的登录表单,并在需要时显示自己onClick而不是设置新的页面请求。

我注意到,为了使登录真正安全,表单操作应指向https页面,但登录表单本身应该在https页面上。

有没有办法让弹出式登录表单安全无需整个网站https?

http://页面上使用(理论上) https://的AJAX弹出窗口(或iframe)会出现两个问题:

  1. 攻击者可以拦截该页面并用自己的链接替换该链接。
  2. 这可以防止用户检查它所连接的站点。

第一个问题与此问题有关 (不是特定于AJAX弹出窗口,而是通过普通HTTP登录页面, 也在Security.SE上讨论 )。 这违背了OWASP的这一建议 :

必须通过TLS专门访问登录页面和所有后续经过身份validation的页面。 初始登录页面(称为“登录登录页面”)必须通过TLS提供。 如果未能将TLS用于登录登录页面,则攻击者可以修改登录表单操作,从而将用户的凭据发布到任意位置。

从本质上讲,MITM可以修改您用来服务该登录框的页面以用它们自己替换它:用户将无法注意到差异(至少在它为时已晚)。

第二个问题是,看到你已连接(并且还要连接下一步)到地址栏中所需的网站,这实际上是一件好事。 任何人都可以拥有有效的https://网站: mybank.example.comattackers.example.com都可以拥有受信任机构颁发的有效证书。 如果我连接到我的银行,我想知道我的银行是通过HTTPS连接的。 从弹出窗口或iframe向https://站点发送凭据会隐藏真实的目标网站。

当初始页面通过HTTPS提供时,也会发生此问题,不幸的是3-D Secure系统已经certificate了这一点(这些人应该知道更好,真的!)。

简而言之,不要使用iframe或弹出窗口,并且通过HTTPS提供登录表单的页面。

如果没有将整个站点包装在SSL协议中,那么唯一的另一个选择就是让弹出窗体成为一个IFRAME,指向另一个页面,其中的窗体驻留在HTTPS连接上。

如果HTTP正在提供初始请求,并且您使用相同的通道提供“HTTPS”链接/表单等,则攻击者只需将该HTTPS更改为HTTP即可。

Firesheep已经certificate了这一点

您可以做的是通过HTTP提供HTTPS表单,但启用HTTP严格传输安全性

当然,我假设您将拥有像https://login.site.com这样的链接,这些链接将由http://www.site.com提供 …这样您就必须为sub创建SSL证书-site / one虚拟主机