是否将CSRF令牌存储在cookie中以防止CSRF?

问题描述 投票:0回答:1

为了防止CSRF,Spring Security和AngularJS使用一种方法将CSRF令牌存储在cookie中。然后,对于每个请求,Web客户端将与cookie和HTTP标头相同的标记发送到服务器以进行验证。这些来自这个博客。 https://spring.io/blog/2015/01/12/the-login-page-angular-js-and-spring-security-part-ii#csrf-protection

但是,我认为从另一方面来说,黑客可以伪造cookie和HTTP标头来发送虚假请求。它是否正确?

angularjs spring security cookies csrf-protection
1个回答
0
投票

我从用于验证防伪令牌的CSRF令牌的ASP .net侧了解到,将存在两个存储此令牌的位置。 1.在页面中,当从angular发出请求时,我们将在请求标头中包含此标记。 2.在cookie中,当从浏览器触发时,该请求将自动获取。

在服务器端,当收到请求时,服务器将解密两个令牌并验证请求,如果两者之间具有有意义的关系(这种关系在服务器中通过算法确定)。

现在,在这里,攻击者无法在任何时间花费这两个字符串,因为防伪验证算法没有公开,每次在生成时都会生成新的字符串。第二件事是我认为攻击者无法直接包含Cookie被添加到请求中,因为cookie是从浏览器中获取的。他们可能是这样做的工具。但除非未公开使用的算法,否则攻击者无法完成csrf攻击。

我认为这可能与Java spring方面相同。

© www.soinside.com 2019 - 2024. All rights reserved.