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

Angularjs 在cookie中存储CSRF令牌是否足以防止CSRF?,angularjs,spring,security,cookies,csrf-protection,Angularjs,Spring,Security,Cookies,Csrf Protection,为了防止CSRF,Spring Security和AngularJS使用一种方法将CSRF令牌存储在cookie中。然后,对于每个请求,web客户端将与cookie和HTTP头相同的令牌发送到服务器进行验证。这些来自这个博客 然而,我认为从另一方面来说,黑客可以伪造cookie和HTTP头来发送假请求。这是否正确?我从CSRF令牌验证防伪令牌的ASP.net端了解到,将有两个地方存储此令牌 1.在从angular发出请求的页面中,我们将在请求头中包含此令牌。 2.在cookie中,当从浏览器触发

为了防止CSRF,Spring Security和AngularJS使用一种方法将CSRF令牌存储在cookie中。然后,对于每个请求,web客户端将与cookie和HTTP头相同的令牌发送到服务器进行验证。这些来自这个博客


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

我从CSRF令牌验证防伪令牌的ASP.net端了解到,将有两个地方存储此令牌
1.在从angular发出请求的页面中,我们将在请求头中包含此令牌。
2.在cookie中,当从浏览器触发时,请求将自动拾取该cookie

在服务器端,当接收到请求时,服务器将解密这两个令牌,并在它们之间存在有意义的关系(这种关系在服务器中由算法决定)时验证请求

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

我认为这对于JavaSpring方面可能是相同的