当前位置: 首页 > 知识库问答 >
问题:

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

经正祥
2023-03-14

有一个关于Spring security csrf保护的问题。CSRF是否仅在我从REST客户端(如Postman)拨打REST电话时触发403状态?从代码中调用REST时是否触发403状态?如果是,如何保持csrf保护并拨打REST电话?

共有1个答案

赏育
2023-03-14

您需要为所有具有受保护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>
<!-- ... -->

即使在使用postman时,也有一些方法可以用来自动提取和包含令牌(并且不必每次都从登录响应中手动检索CSRF令牌)。您可以检查以下问题了解更多详细信息:如何从Postman rest客户端发送Springcsrf令牌?

 类似资料:
  • 我试图在我的基于微服务的Spring启动应用程序中实现普罗米修斯,部署在weblogic服务器上。作为POC的一部分,我已经将配置作为一场战争的一部分。为了启用它,我在下面设置了配置- 应用属性 格拉德尔- 但执行器请求被现有的拦截器阻止。它要求在特定于我们项目的标题中传递值。通过postman(http:localhost:8080/abc/activator/prometheus),我可以测试

  • 问题内容: 我有一个struts2 webapp,需要在其中实现CSRF保护。对于状态表格,这是非常简单的。我只需要激活拦截器,然后设置要提交的表单即可。(在这里和这里解释) 但是,当我需要为不一定通过表单提交的POST AJAX调用(我使用jQuery)启用CSRF保护时,就会出现问题。在进行后续的AJAX调用时,我面临重用令牌的问题。 任何指针或不同的方法都是可以理解的。 问题答案: 目前,我

  • 我有两个Spring Boot Web应用程序。两个应用程序都有不同的数据库和不同的用户集。此外,两个应用程序都使用Spring Security进行身份验证和授权,这可以正常工作。 在任何给定点上,我都将运行第一个应用程序的一个实例和第二个web应用程序的多个实例。 我想公开来自第一个Web应用程序(一个实例运行)的REST API,并能够使用来自第二个Web应用程序(多个实例运行)的REST

  • 我有一个Spring WebFlux安全性,如下所示,并希望使用属性控制CSRF。我如何在这里单独添加CSRF检查?

  • 我想在intellij Idea中以调试模式启动spring-boot maven应用程序,但当我创建断点时,应用程序不会挂起,而是会继续。我读了很多题目,但还是不明白怎么做。你能帮我决定最好的行动方案吗。 但是当请求LocalHost:5005/MyPage时,我会出现错误101(NET::ERR_CONNECTION_RESET)。似乎有些maven参数没有指定。 下面是我在pom.xml中的

  • 本文向大家介绍如何在Spring Boot应用程序中实现Spring安全性?相关面试题,主要包含被问及如何在Spring Boot应用程序中实现Spring安全性?时的应答技巧和注意事项,需要的朋友参考一下 实施需要最少的配置。您需要做的就是spring-boot-starter-security在pom.xml文件中添加starter。您还需要创建一个Spring配置类,它将覆盖所需的方法,同时