我知道它违反了Same origin policy,这就是为什么它不可能通过简单的ajax请求。我可以使用JSONP。但使用JSONP进行登录听起来并不安全(没有帖子只能得到)。从HTTP通过AJAX调用HTTPS登录
那么是否有更安全的方式通过ajax实现登录到https?
我知道它违反了Same origin policy,这就是为什么它不可能通过简单的ajax请求。我可以使用JSONP。但使用JSONP进行登录听起来并不安全(没有帖子只能得到)。从HTTP通过AJAX调用HTTPS登录
那么是否有更安全的方式通过ajax实现登录到https?
它不仅违反了same origin policy,但由于您呼叫的页面不安全,它可能会被干扰并泄漏您尝试保持安全的所有数据。
在整个过程中使用HTTPS。
更好的是,在用户登录时继续使用HTTPS,否则您将拥有the Firesheep problem。
正如我们在下面的评论中所讨论的,这是Facebook为其注册页面所做的工作,尽管这种方法存在一些漏洞。尽管用户看起来不安全(无锁图标),但实际的请求是通过HTTPS完成的。如果您控制了整个接收页面,那么通过GET执行JSONP请求的安全性就会降低。但是,中间人攻击可能会在接收的页面上修改负载,并将返回的凭据发送给攻击者。
从好的一面来看,没有人只是嗅探数据包就能获得凭据:攻击必须是相当有针对性的。在技术上,JSONP可以“返回”Cookie;你只需返回你想要设置的cookies的名称 - 值对,并在接收页面上设置一个函数来设置它们。
但是,除非浏览器以不同的方式处理<script>
,并且它可能应该能够使用JSONP响应的响应头以正常方式设置cookie。
是的,从等式中取出HTTP。如果你在'HTTP'内执行'GET'请求,它就是明文。否则,请在服务器上重新指定,以在登录页面上强制将'HTTP'强制为'HTTPS'。 – Anders