通过AJAX从HTTP调用HTTPS进行登录

时间:2011-09-29 08:00:21

标签: javascript ajax http https jsonp

我知道它违反了Same origin policy,这就是为什么通过简单的ajax请求无法实现的原因。我可以使用JSONP。但是使用JSONP进行登录听起来并不安全(没有帖子只能获得)。

通过ajax实现登录https是否有更安全的方法?

2 个答案:

答案 0 :(得分:15)

它不仅违反了same origin policy,而且由于您呼叫的页面不安全,因此可能会受到干扰并泄露您要保证安全的所有数据。

在整个过程中使用HTTPS。

更好的是,在用户登录时继续使用HTTPS,否则您将拥有the Firesheep problem

答案 1 :(得分:1)

正如我们在下面的评论中所讨论的那样,这就是Facebook为其注册页面所做的工作,尽管这种方法存在一些漏洞。虽然它对用户来说似乎不安全(没有锁定图标),但实际请求是通过HTTPS完成的。如果您控制了整个接收页面,那么通过GET执行JSONP请求就没那么安全了。但是,中间人攻击可能会在加载时修改接收页面,并导致将返回的凭据发送给攻击者。

从好的方面来说,没有人只是在嗅探数据包就能获得凭证:攻击必须是相当有针对性的。

关于cookie,从技术上讲,JSONP可以“返回”cookie;你只需要返回你想要设置的cookie的名称 - 值对,并在接收页面上设置一个函数来设置它们。

但是,除非浏览器以不同方式处理<script>,否则您应该能够使用JSONP响应的响应标头以正常方式设置cookie。