HttpBasic 认证模式活该被放弃

网站建设4年前发布
30 0 0

今天来聊一聊spring security中的一种经典认证模式HttpBasic,在5.x版本之前作为Spring Security默认认证模式,但是在5.x版本中被放弃了,默认的是form login认证模式,HttpBasic登录验证模式是Spring Security实现登录验证最简单的一种方式,也可以说是最简陋的一种方式。,为什么是最简陋的?这种模式用来糊弄普通用户可以,但是稍微懂点技术的用户分分钟就可以将其破解,因为底层并未做任何的安全的设置,仅仅是将用户名:密码做了简单的base64加密传递给服务端,base64又是一种可逆的算法。,因此 HttpBasic 的应用场景非常少,对于不重要的数据,用户比较少但是又想设置一重障碍的时候就可以考虑使用这种,虽然这种认证模式不太重要,但是还是要了解,对于后面的学习至关重要,下面搭建一个项目演示一下,1. 添加maven依赖,直接添加Spring Security的依赖,如下:,2. Spring Security 添加配置,由于陈某使用的是Spring Boot 2.x版本,此时的Spring Security 是5.x版本,默认的认证方式是form表单认证,因此需要配置一下HttpBasic认证模式,代码如下:,启动项目,在项目后台有这样的一串日志打印,冒号后面的就是默认密码。,我们可以通过浏览器进行登录验证,默认的用户名是user.(下面的登录框不是我们开发的,是HttpBasic模式自带的),2023030610523687e93b4427a155449a17661a1dd9bd7419ff6b905,当然我们也可以通过application.yml指定配置用户名密码,配置如下:,整个流程如下图:,20230306105236c96a06645d63edb967a689c93f04215fabf6fa542,所以,HttpBasic模式真的是非常简单又简陋的验证模式,Base64的加密算法是可逆的,你知道上面的原理,分分钟就破解掉。我们完全可以使用PostMan工具,发送Http请求进行登录验证。,20230306105237e76fb1502ae8541a1983574af5d3b17f847c55882,整个流程都在BasicAuthenticationFilter#doFilterInternal()这个方法中,有兴趣的可以去看看。

© 版权声明

相关文章