ajax异步登陆 cookie,登录/会话cookie,Ajax和安全性

cookie必须在服务器端生成,因为会话将客户端绑定到服务器,因此令牌交换必须在某个阶段从服务器到客户端。生成cookie客户端并不会真正有用,因为该客户端 是 不受信任的远程计算机。

可以在AJAX调用期间设置cookie。对于服务器(和网络),AJAX调用只是一个HTTP调用,服务器的任何HTTP响应都可以设置cookie。因此,可以,可以响应AJAX调用而发起会话,并且该cookie将由客户端正常存储。

因此,您可以使用AJAX进行登录过程,就像通过页面上的表单依靠POST一样。服务器将以相同的方式查看它们,如果服务器设置了cookie,浏览器将对其进行存储。

基本上,客户端Javascript永远不需要能够知道cookie的值(如果不这样做,则对安全性更好,这可以使用最近的浏览器认可的“ httponly”

cookie扩展来实现)。请注意,无论是正常的页面请求还是AJAX请求,从客户端到服务器的其他HTTP调用都将自动包含该cookie,即使其标记为httponly并且浏览器采用该扩展名也是如此。您的脚本不需要“了解”

cookie。

您提到使用HTTPS(基于SSL的HTTP)-防止其他人在传输过程中读取信息或模拟服务器,因此对于防止密码或其他重要信息的纯文本传输非常方便。它也可以帮助您防范基于网络的攻击,尽管它不能使您免受CSRF可能给您带来的一切困扰,也不能完全保护您免受会话固定或XSS之类的攻击。因此,如果您使用HTTPS,我会避免将其视为固定解决方案:您

仍然 需要对跨站点脚本和跨站点请求伪造保持警惕。

(请参阅1.我将它们组合在一起)

假定cookie是由服务器在其HTTP响应标头中设置的,是的,它是可靠的。但是,要使其跨浏览器兼容,您仍然需要确保在AJAX不可用时可以登录。这可能需要实现一种替代方法,该替代方法仅在没有Javascript或AJAX不可用时才可见。( 注意:现在是2014年,您不再需要担心浏览器对AJAX的支持了 )。

它不会改变安全性。除了我之前看到过用来“模拟” AJAX的隐藏iframe(即对服务器进行异步调用)之外,将不需要它。基本上,但是您没关系,这是由服务器设置Cookie,并且无论是否通过AJAX进行操作,客户端都会接受并返回Cookie。

在大多数情况下,无论是否使用AJAX都不会对安全性造成太大的影响,因为所有真正的安全性都发生在服务器端,并且对服务器而言,AJAX调用就像非AJAX调用一样:不可信任。因此,与不使用AJAX时一样,您需要意识到诸如会话固定和登录CSRF之类的问题,以及像CSRF和XSS这样影响整个会话的问题。使用AJAX时,这些问题并没有真正改变,除了,我想,如果您对某项技术不熟悉或比较复杂,则可能会犯更多的错误。

答案于2014年9月更新

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值