
SpringSecurity
文章平均质量分 70
分享SpringSecurity的使用经验。
李昂的数字之旅
数字梦想之旅
展开
-
SpringSecurity安全框架简介
我们介绍了Spring Security的基本概念和常见功能,分析了Spring Security扩展机制的实现原理,最后对比了Spring Security6.0的一些改动。可见,使用Spring Security我们通过提供自己的业务过滤器,很容易实现功能的扩展。原创 2023-03-29 15:19:48 · 1653 阅读 · 0 评论 -
SpringSecurity如何设置和修改登录态
通过更新和,我们就能完整更新中的用户信息。如果项目中引入了Spring Session,Spring Session维护的登录态也会同步更新。原创 2023-04-02 00:52:21 · 1737 阅读 · 0 评论 -
SpringSecurity如何实现前后端分离
由于前端直接调用登录接口,跳过了获取登录页面的步骤,所以服务端没有机会将CSRF Token传给前段,所以要把POST /login接口的CSRF校验剔除掉。原创 2023-03-11 18:08:28 · 2171 阅读 · 5 评论 -
SpringSecurity如何管理session
SessionManagementFilter是在用户认证成功后,执行一些session相关的工作,包括防止固定会话攻击,多点登录登自动下线等。用户通过扩展点,能自定义各种策略。下面是SessionManagementFilter的流程图,分为4个子流程:认证通过,执行策略成功,保存SecurityContext,执行下一个Filter认证通过,执行策略失败,执行身份认证失败策略(一般是重定向到登录页面),结束请求。原创 2023-03-14 15:17:42 · 1088 阅读 · 0 评论 -
SpringSecurity使用数据库的用户数据做认证
InMemoryUserDetailsManager 初始化的位置是在UserDetailsServiceAutoConfiguration 配置文件里。所以,我们提供UserDetailsService Bean之后,配置就会自动失效。这是实例,要注意接口约定loadUserByUsername方法不能返回null,所以找不到用户时要抛UsernameNotFoundException 异常。原创 2023-03-13 15:28:26 · 671 阅读 · 0 评论 -
SpringSecurity支持WebAuthn认证
解决了密码泄露的风险,主流的浏览器都支持。Spring Security官方暂时未支持WebAuthn,可以用的项目,它将和Spring Security打通,项目还处于开发阶段,设计上可能还会调整。但我们可以通过项目里的demo,很好的学习怎么实现WebAuthn。简单介绍一下中例子的打开方式。原创 2023-03-07 12:05:03 · 1114 阅读 · 0 评论 -
WebAuthn无密码身份验证技术
验证器将私钥存在域名+凭证 ID下,再用私钥签名Challenge,将签名结果、凭证 ID和公钥返回给客户端(浏览器)。服务器取出凭证 ID对应的Challenge,用公钥签名Challenge,将结果和浏览器返回的签名比较,一致表面验证通过。然后,把凭证 ID对应的公钥存下来。服务器取出凭证 ID对应的Challenge,用公钥签名Challenge,将结果和浏览器返回的签名比较,一致表面验证通过,允许用户登录。验证器通过域名、凭证 ID找到私钥,通过私钥签名Challenge,将签名结果返回给浏览器。原创 2023-03-07 11:29:16 · 805 阅读 · 0 评论 -
Filter在SecurityFilterChain上的的排序规则
为了让系统正常运行,SecurityFilterChain 上的Filter要保持一定的顺序,例如AuthorizationFilter 要放在各类AuthenticationFilter 的后面,不然还没认证就开始校验权限信息,那一定不会通过。Spring Security为默认的Filter设置了固定的顺序,这些Filter和Filter的子类,都会按照这个顺序执行。原创 2023-03-11 16:56:16 · 952 阅读 · 0 评论 -
问题分析:URL设置成公开,访问还会被拒绝?
使用SpringMvc和SpringSecurity时,把一个不存在的URL的设置成公开访问,并在未登录的状态下访问了,结果会返回404吗?答案并不会,这会触发两种错误处理机制。当URL不存在时,会触发SpringMvc的错误处理机制,将请求重定向给错误页,页面显示404当未登录时,会触发SpringSecurity的权限校验机制,没登录会触发AccessDeniedException 异常,从而转到登录页。这两个机制下,最终SpringSecurity会胜利,所以看到的是没权限访问。原创 2023-03-12 22:46:36 · 443 阅读 · 0 评论 -
一文了解HTTPS是什么
HTTPS是HTTP开启TLS传输协议,客户端要拿到服务端的公钥,用公钥加密数据后再进行传输,防止数据泄露后背篡改。它要解决两个问题:怎么保证公钥可信怎么加密数据。原创 2023-03-07 18:50:29 · 539 阅读 · 0 评论 -
什么是Cookie-Session重放攻击
Cookie-Session 重放攻击是一种网络攻击方式,攻击者利用被攻击者已有的认证 Cookie 或 Session ID 等信息,重复发送该信息进行身份验证,从而获得访问权限。原创 2023-03-07 15:38:23 · 1196 阅读 · 0 评论 -
定时攻击简介
定时攻击(Timing Attack)是一种利用计算机系统中对比时间来获取敏感信息的攻击方式。这种攻击方式利用了系统比较两个值的操作需要一定的时间的特点,通过不断地改变一个值的位数并比较两个值的时间差,逐步获取敏感信息。通常,定时攻击可以用于窃取密码、令牌、加密密钥等敏感信息。定时攻击的主要原理是利用系统的时间差异,比较两个值的时间差异可以告诉攻击者哪一个值的某一位比较接近真实值。在密码验证中,攻击者可以通过逐位比较密文和明文的时间差,逐步猜测出密码的每一位。原创 2023-03-07 15:35:22 · 614 阅读 · 0 评论