如何在Spring启动应用程序中进行REST调用而不在Spring安全性中禁用CSRF保护?

时间:2018-03-01 04:59:47

标签: spring rest spring-boot spring-security

有关于Spring安全性csrf保护的问题。 仅当我从像Postman这样的REST客户端进行REST调用时,CSRF是否会触发403状态? 它是否在从我们的代码进行REST调用时触发403状态?如果是,如何保持csrf保护并进行REST调用?

1 个答案:

答案 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?