提出一种使用存储的令牌保护ajax调用的替代方法

时间:2011-11-17 03:18:53

标签: ajax security

现在我认为保护ajax调用,有时使用令牌的普通表单非常常见。它的工作原理如下。 1)用户请求页面2)将令牌放入html,并进入会话3)提交时检查这些值。

现在我面临的一个主要障碍是缓存。我没有很多变化的内容,所以我希望能够缓存至少24小时。另一方面,我在前端做了一些ajax调用,好的做法是让它们有点安全。

现在我在想这个,但我不知道它是否会奏效。也许你可以提供帮助。

  • 用户请求网站,并提供缓存的网站。
  • 在网站上,进行了第一次ajax调用,该调用仅询问令牌
  • 在后端,会生成一个令牌,存储在会话中并发送到前端
  • 令牌存储在前端的var中,现在随每次调用一起发送
  • 在每次通话时,我们都会检查会话和给定的令牌
  • 如果匹配,我们会执行数据库内容,如果不是,我们会调用FBI
  • FBI接管案件

开玩笑说最后一部分。但是这样做会有效,因为你没有发送一块真实的网站。

也许你可以通过存储用户请求的表单的标识符来使它更聪明一些。

实际上,我不知道这是否有效,我实在怀疑。也许有人可以向我解释为什么这不起作用。

1 个答案:

答案 0 :(得分:0)

为了prevent csrf使用令牌,每个用户必须拥有攻击者无法猜测的唯一令牌。如果您向每个人提供相同的缓存页面,则令牌不是秘密,攻击者可以伪造请求。

话虽如此。您可以让一些JavaScript使用XHR从用户的会话数据存储中提取用户令牌,并填充表单或ajax调用。