我提出这个问题是因为在客户端服务器应用程序中,服务器发送带有隐藏在表单中的每个请求的不同令牌的html。此令牌通过密钥在服务器上构建。
但是Angular 2所有形式都已经在客户端上。对于包含令牌的表单,他需要一个密钥在客户端,而对我来说已经是一个安全漏洞。
所以我问这个问题,在Angular 2中使用csrf令牌是否有意义?如果答案是肯定的,那该怎么办呢?
答案 0 :(得分:5)
Angular 2包含一个名为double-submit cookie pattern的CSRF / XSRF缓解策略。来自Angular documentation,
Angular http客户端内置了对此技术的支持。默认
CookieXSRFStrategy
查找名为XSRF-TOKEN的cookie,并在每个请求中设置名为X-XSRF-TOKEN
的HTTP请求标头,其值为该cookie。服务器必须设置XSRF-TOKEN
cookie,并验证每个状态修改请求的响应头。
因此,如果您使用http
服务,则无需在Angular端执行任何额外操作即可获得CSRF保护。服务器需要检查标头和cookie值是否相同。