繁体   English   中英

如何在Spring引导应用程序中进行REST调用而不禁用Spring Security中的CSRF保护?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM