保护AJAX应用程序的最佳方法

我目前正在对一个基于AJAX的站点进行身份验证,我想知道是否有人对这类事情的最佳实践有任何建议

我最初的方法是基于cookie的系统。本质上,我设置了一个带有身份验证代码的cookie,每次数据访问都会更改cookie。此外,每当身份验证失败时,该用户的所有会话都会被取消身份验证,以防止劫持者进入。要劫持会话,必须有人让自己登录,黑客需要发送最后一次cookie更新来欺骗会话

不幸的是,由于AJAX的特性,当快速发出多个请求时,它们可能会出现顺序错误,设置cookie错误,并中断会话,因此我需要重新实现

我的想法是:

  • 一种绝对不安全的基于会话的方法
  • 在整个站点上使用SSL(似乎有些过分)
  • 使用经过ssl身份验证的iFrame来执行安全事务(我只是假设这是可能的,只需要一点jquery黑客攻击)

问题不在于传输的数据,唯一担心的是有人可能会控制一个不属于他们的帐户

一种绝对不安全的基于会话的方法

就我个人而言,我还没有发现在整个站点(或大部分站点)上使用SSL是过分的。也许在不久前,当速度和进给速度都比较慢的时候。现在,我会毫不犹豫地将站点的任何部分置于SSL之下。

如果您决定使用SSL作为整个站点是可接受的,您可以考虑只使用旧的“基本身份验证”,其中服务器返回 401 响应,这会导致浏览器提示用户名/密码。如果您的应用程序可以使用这种类型的登录,那么is对于AJAX和所有其他站点访问都非常有用,因为浏览器使用适当的凭据处理重新提交请求(如果您使用SSL,它是安全的,但是如果您使用SSL,它只适用于,不要将基本身份验证与普通http一起使用!)

发表评论