部署在阿里云上的项目收到了阿里云发送的shiro漏洞
还记得在十月份凯哥发布过一篇修改若依系统编辑器的文章,然后为了方便大家浏览,凯哥就部署在服务器上了,结果,没想到最近收到了阿里云漏洞扫描通知:
如果不修改的话:对于长期存在安全隐患但未整改的网络资源,监管部门可能会下达行政处罚
根据扫描结果,搜索了下漏洞的证明(如下图):在项目中搜索,我去,还真是啊。
漏洞描述
Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能。
漏洞造成的影响
在配置了默认密钥的情况下,攻击者可以通过精心构造的 Payload 实现远程命令执行,从而进一步获取服务器权限。
安全建议
升级shiro至最新版本1.7.0并生成新的密钥替换,注意妥善保管密钥,防止泄漏。
利用官方提供的方法生成密钥:org.apache.shiro.crypto.AbstractSymmetricCipherService#generateNewKey(),换key修复指南:
于是急忙的修改了shiro的版本号,重新生成了密钥生成规则。
解决方案
后面通过源码分析,发现了shiro有自己的随机生成秘钥的方法。既然找到的方法,那就好说了,按照源码的方式新写一个秘钥生成器:
public class GenerateCipherKey {
/**
* 随机生成秘钥,参考org.apache.shiro.crypto.AbstractSymmetricCipherService#generateNewKey(int)
* @return
*/
public static byte[] generateNewKey() {
KeyGenerator kg;
try {
kg = KeyGenerator.getInstance("AES");
} catch (NoSuchAlgorithmException var5) {
//这里的msg可以任意随机输入
String msg = "kaigejavaXXnnOOdd";
throw new IllegalStateException(msg, var5);
}
kg.init(128);
SecretKey key = kg.generateKey();
byte[] encoded = key.getEncoded();
return encoded;
}
}
对于传统的xml配置项目修改方案:
在shiro的配置文件中,引入key的方法:
其中图中箭头的位置是自己项目类全路径的包名。
对于spring boot项目修改方案:
同样是修改shiro的配置文件,只是spring boot的方式不同了,使用的是就java 类的方式。修改如下:
项目已经重新部署了,可以访问了。同时已经提交到码云上了,欢迎之前下载的朋友更新。
获取最新项目源码及shiro漏洞报告==>关注凯哥公众号:凯哥Java(kaigejava)。回复:869
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
科技界突破性进展:原子级别存储器!
在科学家的努力下,已经造出了世界最小的存储单元,其尺寸真的是小到让人惊叹。 据外媒New Atlas报道,得克萨斯大学的工程师们创造了有史以来最小的记忆存储设备之一,由一种二维材料制成,横截面面积只有一平方纳米。 这种被称为 “原子电阻”的装置是通过单个原子的运动来工作的,这将为具有难以置信的信息密度的更小的记忆系统铺平道路。 这种新设备属于一类新兴的电子器件,称为记忆电阻(Memristors),它使用电阻开关存储数据。从本质上讲,当某种材料暴露在一定的电压下时,其电阻可以切换,变得更强或更弱。这种现象可用于将数据写入设备,随后可测量其相对电阻以“读取”存储的数据。 该团队表示,新装置是有史以来最小的原子存储器单元。二硫化钼被制作成尺寸为1×1纳米的薄片,厚度只有一个原子。 如果要扩大规模,它可以用来制造每平方厘米约25TB的存储容量的芯片,这比目前的闪存所能提供的容量高100倍左右。它运行所需的能量也更少 。
- 下一篇
云计算快速入门指南
本文简单介绍了云计算的概念、架构、部署及市场等多方面的内容: 云计算是什么? 简单来说,云计算就是按需计算服务的交付,服务涵盖:应用程序、存储和处理能力,通常通过互联网并按需付费。 云计算如何工作? 公司无需拥有自己计算基础设施或数据中心,可以直接从云服务提供商租用资源。所以,公司可以避免建立和维护自己的IT基础设施的成本和复杂性,只需要在使用时支付使用费用即可。 反过来,云计算服务提供商可以通过向广泛的客户提供相同的服务,从规模经济中受益。 云计算服务有哪些? 云计算涵盖了广泛的服务,基础性的服务有:存储、网络和处理能力,再到高阶一点的:自然语言处理、人工智能、办公应用程序。基本上,只要是不需要在物理上接近的服务,都可以通过云来提供。 举个栗子? 云计算是众多服务的基础。例如你的QQ邮箱,或者你手机上照片的云备份,往大点说还包括允许大型企业托管其所有数据、并在云中运行其应用程序的服务。哔哩哔哩、爱奇艺等就是用云计算来运行其视频流服务和其他业务系统。 并且,云计算正在成为许多应用程序的默认选择,越来越多的软件供应商将其应用程序作为服务在互联网上提供。但是,云计算也有潜在的弊端,它会给公...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7安装Docker,走上虚拟化容器引擎之路