rememberMe的低版本AES固定密码导致的漏洞,高版本仍然有被爆破,穷举的风险等。这种东西总是在安全检测的时候被拿出来说事儿,然而项目中并未开启rememberMe,也就是说压根不需要这个功能。那此时采用重写代码来直接杜绝这东西即可,任凭它怎么检测,已经没有这个口子了。

跟踪源码会发现,在创建DefaultWebSecurityManager的时候,默认会注入一个CookieRememberMeManager,它里面就是主要实现这个rememberMe的功能。

而且没有提供注入CookieRememberMeManager的构造类,但是父类中提供了set方法

处理办法

  1. 自己实现一个RememberMeManager继承AbstractRememberMeManager。空的实现即可,不提供任何相关逻辑,因为压根用不到。比如如下:

    public class IgnoreRememberManager extends AbstractRememberMeManager {

    @Override

    protected void forgetIdentity(Subject subject) {}

    @Override

    protected void rememberSerializedIdentity(Subject subject, byte[] serialized) {

    }

    @Override

    protected byte[] getRememberedSerializedIdentity(SubjectContext subjectContext) {

    return null;

    }

    @Override

    public void forgetIdentity(SubjectContext subjectContext) {}

    }

  2. 创建DefaultWebSecurityManager时设置它即可,比如Spring配置文件:

    <bean id="rememberMeManager" class="com.lw.security.shiro.IgnoreRememberManager"/> <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager"> <property name="realm" ref="shiroDbRealm" /> <property name="cacheManager" ref="shiroEhcacheManager" /> <property name="rememberMeManager" ref="rememberMeManager" /> <property name="subjectFactory" ref="casSubjectFactory"></property> </bean>

如此一来,等于完全剔除了这个功能,没有相关逻辑了。后续需要实现的时候,自行再填充自定义逻辑即可。

shiro的rememberMe各种漏洞一刀切解决的更多相关文章

  1. Shiro的 rememberMe 功能使用指导(为什么rememberMe设置了没作用?)

    UsernamePasswordToken token = new UsernamePasswordToken(loginForm.getUsername(),loginForm.getPasswor ...

  2. Shiro 身份认证绕过漏洞 CVE-2022-32532

    前言 Apache Shiro 是一个强大且易用的 Java 安全框架,通过它可以执行身份验证.授权.密码和会话管理.使用 Shiro 的易用 API,您可以快速.轻松地保护任何应用程序 -- 从最小 ...

  3. SpringBoot学习:整合shiro(rememberMe记住我后自动登录session失效解决办法)

    项目下载地址:http://download.csdn.NET/detail/aqsunkai/9805821 定义一个拦截器,判断用户是通过记住我登录时,查询数据库后台自动登录,同时把用户放入ses ...

  4. 从commons-beanutils反序列化到shiro无依赖的漏洞利用

    目录 0 前言 1 环境 2 commons-beanutils反序列化链 2.1 TemplatesImple调用链 2.2 PriorityQueue调用链 2.3 BeanComparator ...

  5. WP_Image_Editor_Imagick 漏洞临时解决方法

    导读 阿里云推送的一条短信通知:存放在上面的WordPress程序有WP_Image_Editor_Imagick漏洞问题,需要登入后台补丁等等的暗示.当然,如果需要在线补丁则需要升级阿里云的安骑士专 ...

  6. 使用shiro框架,注销问题的解决

    在使用shiro框架的时候,有时候会因为登录问题找不到注销的controller.所以会报404的错误,下面是解决办法: 1.首先写一个类SystemLogoutFilter继承LogoutFilte ...

  7. shiro的rememberMe不生效

    问题描述:已经设置了map.put("/**", "user"),但是查看网页Cookie没有值. 问题查思路: 1.确定使用UserFilter过滤器,因为只 ...

  8. Struts2/XWork 安全漏洞及解决办法

    exploit-db网站在7月14日爆出了一个Struts2的远程执行任意代码的漏洞. 漏洞名称:Struts2/XWork < 2.2.0 Remote Command Execution V ...

  9. [shiro] - 加入rememberMe功能

    shiro不加入rememberMe没事,一加入就出错. RememberMeAuthenticationToken : public interface RememberMeAuthenticati ...

  10. 苹果cms网站漏洞修复解决办法

    苹果cms系统,是目前很多电影网站都在使用的一套网站系统,开源,免费,扩展性较好,支持一键采集,伪静态化,高并发的同时承载,获得的很多站长的喜欢,于近日被网站安全检测发现,maccms存在网站漏洞,s ...

随机推荐

  1. 【论文阅读】ICRA2022: Panoptic Multi-TSDFs: a Flexible Representation for Online Multi-resolution Volumetric Mapping and Long-term Dynamic Scene Consistency

    Type: ICRA Year: 2022 tag: SLAM 参考与前言 论文链接:https://arxiv.org/abs/2109.10165 代码链接:https://github.com/ ...

  2. mybatis log4j打印sql语句

    依赖 <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</a ...

  3. 如何支持同一台电脑上使用不同版本的Node.js版本

    在我们实际项目开发过程中,经常不同项目使用的node.js版本会也有所不同,为了方便维护不同版本的项目.可以使用nvm来解决. 1.下载nvm https://github.com/coreybutl ...

  4. 解决方案 | Windows 验证账号出现 0x80190001错误解决

    一.问题描述 点击windows开始→账户→更改账户设置→验证,出现下面的错误. 二.解决方法 网上流行的是这个方法,https://blog.csdn.net/qq_36393978/article ...

  5. npm ERR! `perfix` is not a valid npm option

    全局路径cmd命令:npm config set perfix "D:\Program Files\nodejs\node_global" 缓存路径cmd命令:npm config ...

  6. 基于django(爱抚宠物) 小程序设计和实现(源码+LW+部署讲解)

    感兴趣的可以先收藏起来,大家在毕设选题,项目以及论文编写等相关问题都可以给我加好友咨询 系统介绍: 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用 ...

  7. [oeasy]python0099_雅达利大崩溃_IBM的开放架构_兼容机_oem

    雅达利大崩溃 回忆上次内容 个人计算机浪潮已经来临 苹果公司迅速发展 微软公司脱离mits准备做纯软件公司 IBM用大型机思路制作的5100惨败 Commodore 64 既做计算机 又做游戏机 计算 ...

  8. 学习笔记--初识Java面向对象

    面向对象与面向过程的区别 面向过程:主要关注具体过程,因果关系 优点:对于业务逻辑比较简单的程序,可以得到快速开发,前期投入成本比较低 缺点:由于面向过程的使用让程序间的元素"耦合度&quo ...

  9. 常用的adb命令(重要)

    常用的adb命令(重要)

  10. SpringBoot 配置统一API对象返回

    1.前言 在实际项目开发中,为了便于前端进行响应处理,需要统一返回类格式.特别是在有多个后端开发人员参与的情况下,如果不规范返回类,每个人按照个人习惯返回数据,前端将面临各式各样的返回数据,难以统一处 ...