当前位置:主页 > java教程 > Spring Security防护CSRF功能

Spring Security中防护CSRF功能详解

发布:2023-04-23 09:50:01 59


为找教程的网友们整理了相关的编程文章,网友龙悦畅根据主题投稿了本篇教程内容,涉及到Spring Security、Spring Security CSRF、Spring Security防护CSRF、Spring Security防护CSRF功能相关内容,已被576网友关注,相关难点技巧可以阅读下方的电子资料。

Spring Security防护CSRF功能

CSRF是什么?

CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。

CSRF可以做什么?

你这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。

CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账…

造成的问题包括:个人隐私泄露以及财产安全。

CSRF的原理

下图简单阐述了CSRF攻击的思想:

在这里插入图片描述

从上图可以看出,要完成一次CSRF攻击,受害者必须依次完成两个步骤:

  • 1.登录受信任网站A,并在本地生成Cookie。
  • 2.在不登出A的情况下,访问危险网站B。 

看到这里,你也许会说:“如果我不满足以上两个条件中的一个,我就不会受到CSRF的攻击”。

是的,确实如此,但你不能保证以下情况不会发生:

  • 1.你不能保证你登录了一个网站后,不再打开一个tab页面并访问另外的网站。
  • 2.你不能保证你关闭浏览器了后,你本地的Cookie立刻过期,你上次的会话已经结束。(事实上,关闭浏览器不能结束一个会话,但大多数人都会错误的认为关闭浏览器就等于退出登录/结束会话了…)
  • 3.上图中所谓的攻击网站,可能是一个存在其他漏洞的可信任的经常被人访问的网站。

Spring Security解决方案

将配置类中下面这段代码注释掉:

.and().csrf().disable(); //关闭csrf防护

然后,在登录页面添加一个隐藏域:

<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}" />

Spring Security实现防护csrf的原理

spring security在认证之后会生成一个csrfToken保存到HttpSession或者Cookie中。

之后每次请求到来时,从请求中提取csrfToken,和保存的csrfToken作比较,进而判断当前请求是否合法。主要通过CsrfFilter过滤器来完成。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持码农之家。


参考资料

相关文章

  • Spring Security配置保姆级教程

    发布:2023-04-02

    Spring Security是一个功能强大且可高度自定义的身份验证和访问控制框架。它是保护基于Spring的应用程序的事实上的标准。Spring Security是一个专注于为Java应用程序提供身份验证和授权的框架


  • Spring Security中使用authorizeRequests遇到的问题小结

    发布:2023-04-16

    Spring 是非常流行和成功的 Java 应用开发框架,Spring Security 正是 Spring 家族中的成员,这篇文章主要介绍了Spring Security中使用authorizeRequests遇到的问题,需要的朋友可以参考下


  • Spring Security使用Lambda DSL配置流程详解

    发布:2023-03-31

    Spring Security 5.2 对 Lambda DSL 语法的增强,允许使用lambda配置HttpSecurity、ServerHttpSecurity,重要提醒,之前的配置方法仍然有效。lambda的添加旨在提供更大的灵活性,但是用法是可选的。让我们看一下HttpSecurity的lambda配置与以前的配置样式相比


  • 解决spring security中遇到的问题

    发布:2023-04-23

    这篇文章主要介绍了解决spring security中遇到的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


  • spring security集成cas实现单点登录过程

    发布:2023-04-01

    这篇文章主要介绍了spring security集成cas实现单点登录过程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


  • Spring Security表单配置过程分步讲解

    发布:2023-04-24

    SpringSecurity的配置基于WebSecurityConfigurerAdapter的实现类,我们这里主要讲基本配置,即configure(HttpSecurity http)方法的配置,其实大都有默认值,我们可以直接用默认值,也可以自己设置


  • SpringBoot整合Spring Security过滤器链加载执行流程源码分析(最新推荐)

    发布:2023-03-24

    Spring Boot 对于 Spring Security 提供了自动化配置方案,可以使用更少的配置来使用 Spring Security,这篇文章主要介绍了SpringBoot整合Spring Security过滤器链加载执行流程源码分析,需要的朋友可以参考下


网友讨论