[英]How can I make REST calls in Spring boot application without disabling CSRF protection in spring security?
有关于Spring Security CSRF保护的问题。 仅当我从诸如Postman之类的REST客户端发出REST调用时,CSRF才会触发403状态吗? 从我们的代码进行REST调用时,它是否触发403状态? 如果是,如何保持csrf保护并进行REST调用?
您需要使用“受保护的” HTTP动词之一(PATCH,POST,PUT,DELETE)之一为所有请求包括CSRF令牌,无论请求来自何处(邮递员或浏览器)。
例如, Spring文档指出,如果您使用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令牌)。 您可以检查以下问题以获取更多详细信息: 如何从Postman rest客户端发送spring csrf令牌?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.