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

Spring Boot REST API-按客户端类型(浏览器/非浏览器)启用/禁用CSRF保护?

梁渊
2023-03-14

我有一个Spring Boot REST API。由于安全策略,我需要为浏览器访问的endpoint启用CSRF保护。但是,非浏览器也可以访问此API。有没有一种方法可以创建两组endpoint,一个只能由启用CSRF的浏览器访问,另一个只能由禁用CSRF的非浏览器访问?

共有1个答案

丌官运诚
2023-03-14

我认为浏览器请求和API请求可以有单独的URL基础。

例如,可以在/api/…下设置非浏览器要查询的所有endpoint并且在您的SpringBootSecurityConfiguration类和configure(HttpSecurity http)方法中,您可以使用http有条件地禁用CSRF。csrf()。禁用() 如果模式匹配(这里可以找到很棒的教程)

编辑:下面是另一个可能有用的答案。

 类似资料:
  • Spring Security文档显示: “当您使用CSRF保护时?我们建议对正常用户可以通过浏览器处理的任何请求使用CSRF保护。如果您只创建非浏览器客户端使用的服务,则可能需要禁用CSRF保护。” 如果我的服务将被"浏览器"和"非浏览器"客户端(如第三方外部服务)使用,Spring Security是否提供了一种仅针对某些类型的客户端禁用CSRF的方法?

  • 一面-2023年5月6日 ios客户端,大前端、object-c 自我介绍。有点背稿的感觉。 聊一个项目。说了OSG的项目。提到内存管理。 开始八股。内存:只能指针。 多态,静态、动态。模板、虚函数。静态的除了模板还有啥。析构函数为什么要添加虚函数。 空类size的大小。 struct/class的区别。 堆/栈/BSS几个内存类别 TCP四次挥手。 ipv4地址空间这么小怎么够用,NAT。用同一

  • 二面-2023年5月8日 第一次迟到了面试.. 自我介绍。刚开始没准备各种结巴,语言不顺。整体还是讲完了。 项目。疯狂问项目、但是又不是挖,就是让自己讲。讲了好几个项目。看起来不是特别满意。一个是我自己准备项目拿普通横向项目准备的亮点肯定不够不到位,另外岗位是客户端,没有什么相关的。 岗位匹配度上,问了好几遍和原技术栈不匹配,自己的个人想法。(一开始也是你捞的我,我有啥想法 手撕算法。快排。这两面

  • 我对硒很陌生。我开发了一个应用程序,使用一个selenium web驱动程序来做网页上的一些动作。当我在本地运行时,它可以很好地工作,也就是说,它在我的机器中启动了一个浏览器。我在VM服务器上部署了这个应用程序,所以脚本在服务器上运行(在VM Ware机器中启动的浏览器),而不是在客户端。谁能帮助我如何在客户端启动浏览器?

  • 免责声明:我知道这个问题有重复(一、二、三),但是: null 我的代码: 这将打印: (所有3个请求返回200个http代码) 我有JVM选项: (在我的keystore.jks中添加了vk.com证书) 下面是http-client的内部日志 当然,上面的测试是在关闭内部日志记录的情况下执行的,因为它会给每个请求增加大约50毫秒的额外时间。 我已经读了三遍所有的apache http-clie

  • 问题内容: 如何禁用浏览器的“后退”按钮(跨浏览器)? 问题答案: 这个问题是非常相似,这一个 … 您需要强制缓存过期才能正常工作。将以下代码放在页面代码后面。