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

问题描述 投票:0回答:1

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

spring rest spring-boot spring-security
1个回答
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?

© www.soinside.com 2019 - 2024. All rights reserved.