赞
踩
近几年来,黑客攻击行为呈现出日益复杂和隐蔽的趋势,对个人和组织的安全造成了严重威胁。黑客们不断寻找新的漏洞和安全漏洞,利用各种手段进行网络攻击,包括恶意软件、网络钓鱼、勒索软件等。因此,我们每个人都需要关注漏洞风险,加强网络安全意识,及时更新系统补丁。目前有网友反馈受到攻击勒索,虽然我们的商业客户并没受到影响,但也请尽快升级补丁,避免未知的风险!
黑客攻击现在很频繁,请一定重视!!!
升级freemarker补丁,解决Freemarker模板注入导致远程命令执行, 远程攻击者可利用该漏洞调用在系统上执行任意命令
无论你的jeecg是那个版本都可以采用此方案:重写freemarker的类src/main/java/freemarker/template/Configuration.java方式,在实例化Configuration方法里面默认加入下面代码
//freemarker模板注入问题 禁止解析ObjectConstructor,Execute和freemarker.template.utility.JythonRuntime。
this.setNewBuiltinClassResolver(TemplateClassResolver.SAFER_RESOLVER);
参考代码:针对freemaker2.3.31的重写Configuration初始化,具体大家请按照自己的版本去重写覆盖。
1、升级依赖版本号
修改pom.xml中积木报表的依赖版本号
<!-- 积木报表--> <dependency> <groupId>org.jeecgframework.jimureport</groupId> <artifactId>jimureport-spring-boot-starter</artifactId> <version>1.6.5</version> <exclusions> <exclusion> <artifactId>autopoi-web</artifactId> <groupId>org.jeecgframework</groupId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.jeecgframework.jimureport</groupId> <artifactId>jimureport-nosql-starter</artifactId> <version>1.6.0</version> </dependency>
2、修改yml配置
jeecg:
jmreport:
mode: dev
#多租户模式,默认值为空(created:按照创建人隔离、tenant:按照租户隔离) (v1.6.2+ 新增)
saasMode:
# 平台上线安全配置(v1.6.2+ 新增)
firewall:
# 数据源安全 (开启后,不允许使用平台数据源、SQL解析加签并不允许查询数据库)
dataSourceSafe: false
# 低代码开发模式(dev:开发模式,prod:发布模式—关闭在线报表设计功能,分配角色admin、lowdeveloper可放开限制)
lowCodeMode: dev
3、修改org.jeecg.config.jimureport.JimuReportTokenService加入实现新方法
@Override
public String[] getRoles(String token) {
String username = JwtUtil.getUsername(token);
Set roles = sysBaseApi.getUserRoleSet(username);
if(CollectionUtils.isEmpty(roles)){
return null;
}
return (String[]) roles.toArray(new String[roles.size()]);
}
4.执行升级sql
这里做的是从1.4.2升级到1.6.5,有升级sql如下,其他版本请查看积木报表升级日志
ALTER TABLE jimu_report_data_source ADD COLUMN tenant_id varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '多租户标识' AFTER connect_times; ALTER TABLE jimu_dict ADD COLUMN tenant_id varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '多租户标识' AFTER type; ALTER TABLE jimu_report ADD COLUMN tenant_id varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '多租户标识' AFTER js_str; ALTER TABLE jimu_report_data_source ADD COLUMN type varchar(10) NULL COMMENT '类型(report:报表;drag:仪表盘)'; UPDATE jimu_report_data_source SET type= 'report'; CREATE TABLE jimu_report_share ( id varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键', report_id varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '在线excel设计器id', preview_url varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '预览地址', preview_lock varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '密码锁', last_update_time datetime NULL DEFAULT NULL COMMENT '最后更新时间', term_of_validity varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '有效期(0:永久有效,1:1天,2:7天)', status varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否过期(0未过期,1已过期)', preview_lock_status varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '密码锁状态(0不存在密码锁,1存在密码锁)', PRIMARY KEY (id) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '积木报表预览权限表' ROW_FORMAT = DYNAMIC;
【漏洞通知】JeecgBoot 修复 Freemarker 模板注入漏洞
积木报表 JimuReport v1.6.2-GA5 版本发布 — 高危 SQL 漏洞安全加固版本
【漏洞通知】JeecgBoot 修复SQL注入风险
【漏洞通知】Apache Shiro又爆认证绕过漏洞CVE-2023-34478
JeecgBoot升级Nacos至2.2.3版本解决raft漏洞问题
【高危安全通告】fastjson≤1.2.80反序列化漏洞
黑客攻击,一般是通过控制服务器,搞坏数据库来进行勒索,所以定时备份数据库非常重要。
这里附上一个备份数据库的脚本,供大家参考
#!/bin/bash #数据库的定时备份 #定义备份的路径 BACKUP=/var/lib/mysql DATETIME=`date +%Y_%m_%d_%H%M%S` #echo "$DATETIME" echo "=====start backup to $BACKUP/$DATETIME/$DATETIME.tar.gz======" #主机 HOST=localhost DB_USER=root DB_PWD=123456 #要备份的数据库名称 DATABASE=jeecg-boot #创建备份的路径,如果路径不存在则创建 [ ! -d "$BACKUP/$DATETIME" ] && mkdir -p "$BACKUP/$DATETIME" #执行mysql的备份数据库指令 mysqldump -u${DB_USER} -p${DB_PWD} --host=$HOST $DATABASE | gzip > $BACKUP/$DATETIME/$DATETIME.sql.gz #打包备份文件 cd $BACKUP tar -zcvf $DATETIME.tar.gz $DATETIME #删除临时目录 rm -rf $BACKUP/$DATETIME #删除10天前的备份文件 #在$backup目录下按照时间找10天前的名称为*.tar.gz的文件,-exec表示执行找到的文件 find $BACKUP -mtime +10 -name "*.tar.gz" -exec rm rf {} \; echo "===========backup success======"
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。