我现在迷路了,需要一些帮助。
我有一个
并且希望启用CSRF保护,因为默认情况下应该启用它(文档说):它不是!
在Spring Boot上我需要添加这些安全配置:
http
.csrf()
.csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse());
在Angular上我需要添加这些模块:
imports: [
...,
HttpClientModule,
HttpClientXsrfModule, //(!)
...
底线服务器在每个响应中发送CSRF-TOKEN。
- 但每个人都不同。那是对的吗?我希望在客户端会话上是一样的。
- 这里的主要问题是Angular5在其后调用中仍然没有使用CSRF-TOKEN(例如)。它没有在其请求中设置X-CSRF-TOKEN。
我做错了什么或错过了什么?
我有同样的问题,我认为这是由于角度版本5的回归。
在修复此问题之前,您可以像我一样添加自己的“X-XSRF-TOKEN”标题。
constructor(private http: HttpClient, private tokenExtractor: HttpXsrfTokenExtractor) {
}
然后手动提取令牌
const token = this.tokenExtractor.getToken() as string;
并将其添加到标题中
this.http.post<any>(url, body, {headers: new HttpHeaders().set('X-XSRF-TOKEN', token)})
折扣