有关于Spring安全性csrf保护的问题。 仅当我从像Postman这样的REST客户端进行REST调用时,CSRF是否会触发403状态? 它是否在从我们的代码进行REST调用时触发403状态?如果是,如何保持csrf保护并进行REST调用?
答案 0 :(得分:0)
您需要为所有请求包含CSRF令牌,其中包含一个“受保护”HTTP谓词(PATCH,POST,PUT,DELETE),无论请求来自何处(邮递员或浏览器)。
例如,Spring documentation表示,如果您使用AJAX,建议将CSRF令牌包含在meta
标记中:
<html>
<head>
<meta name="_csrf" content="${_csrf.token}"/>
<!-- default header name is X-CSRF-TOKEN -->
<meta name="_csrf_header" content="${_csrf.headerName}"/>
<!-- ... -->
</head>
<!-- ... -->
即使使用邮递员,也可以使用它来自动化提取和包含令牌的过程(而不必每次从登录响应中手动检索CSRF令牌)。您可以查看以下问题以获取更多详细信息:How do I send spring csrf token from Postman rest client?