CSRF令牌 - 两个请求=失败?

时间:2012-02-08 21:20:58

标签: php csrf protection

我最近为我的网站编写了一个csrf保护库。

如果没有在$ _SESSION中生成,我会为每个请求生成一个随机令牌。

一切运作良好,经过测试且很好 - 但是,请考虑这种情况:

在我的网站:

  1. 用户访问我的网站(example.com)并登录。
  2. 现在他打开了另一个恶意网站。
  3. 恶意网站现在(使用javascript):

    1. 首先运行http://example.com ..并使用javascript(regexp或其他)在表单中的html中获取csrf TOKEN - 比如说“randomToken”。
    2. 使用javascript - 现在获取http://example.com/my-profile/?deletemyaccount=1&token=randomToken
    3. 这显然可以用帖子完成,而不仅仅是获取。

      我想过检查HTTP_REFERER,但那是不可靠的。

      有关如何保护这一点的任何想法?这真的有可能吗?在我看来,使用jQuery这种攻击应该很容易。

1 个答案:

答案 0 :(得分:3)

其他网站无法通过javascript获取您网站的内容,浏览器明确禁止此操作。查看Same Origin Policy