我正在使用Angular 5和Spring Boot创建一个网站,并且服务器上的CSRF出现问题。
对于后端的每个请求,我都会得到一个新的XSRF令牌,而当我尝试进行POST请求时,则会得到一个错误403。在我的计算机上工作时,我得到一种正常的行为:XSRF令牌为每个会话仅发送一次。
在我的服务器上,Spring Boot应用程序位于docker容器中,中间有一个Nginx。有人告诉我这是罪魁祸首,带有XSRF令牌的cookie必须在某处丢失。
这是Nginx的配置:
location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
resolver 127.0.0.11;
set $node "<Internal docker IP and port>";
proxy_pass $node;
proxy_intercept_errors on;
}
更新:在记录了一些数据之后,我可以确认cookie是否已正确传输到Spring Boot应用程序。但是,对于每个GET请求获得不同的令牌仍然没有任何意义。可能与会话有关吗?