JeecgBoot3.0 漏洞升級 — 快速文檔(jeecg-boot漏洞)
近幾年來,黑客攻擊行為呈現(xiàn)出日益復(fù)雜和隱蔽的趨勢,對個人和組織的安全造成了嚴(yán)重威脅。黑客們不斷尋找新的漏洞和安全漏洞,利用各種手段進(jìn)行網(wǎng)絡(luò)攻擊,包括惡意軟件、網(wǎng)絡(luò)釣魚、勒索軟件等。因此,我們每個人都需要關(guān)注漏洞風(fēng)險,加強(qiáng)網(wǎng)絡(luò)安全意識,及時更新系統(tǒng)補(bǔ)丁。目前有網(wǎng)友反饋受到攻擊勒索,雖然我們的商業(yè)客戶并沒受到影響,但也請盡快升級補(bǔ)丁,避免未知的風(fēng)險! 黑客攻擊現(xiàn)在很頻繁,請一定重視?。。?/p>
一、升級 freemarker 補(bǔ)丁,解決執(zhí)行任意命令問題
升級 freemarker 補(bǔ)丁,解決Freemarker模板注入導(dǎo)致遠(yuǎn)程命令執(zhí)行, 遠(yuǎn)程攻擊者可利用該漏洞調(diào)用在系統(tǒng)上執(zhí)行任意命令。
無論你的 jeecg 是那個版本都可以采用此方案:重寫 freemarker 的類 src/main/java/freemarker/template/Configuration.java 方式,在實例化 Configuration 方法里面默認(rèn)加入下面代碼
//freemarker模板注入問題 禁止解析ObjectConstructor,Execute和freemarker.template.utility.JythonRuntime。this.setNewBuiltinClassResolver(TemplateClassResolver.SAFER_RESOLVER);
參考代碼:針對 freemaker2.3.31 的重寫 Configuration 初始化,具體大家請按照自己的版本去重寫覆蓋。https://download.csdn.net/download/zhangdaiscott/88219180
二、升級積木報表到最新版 1.6.5,解決無權(quán)限可訪問問題
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 #多租戶模式,默認(rèn)值為空(created:按照創(chuàng)建人隔離、tenant:按照租戶隔離) (v1.6.2 新增) saasMode: # 平臺上線安全配置(v1.6.2 新增) firewall: # 數(shù)據(jù)源安全 (開啟后,不允許使用平臺數(shù)據(jù)源、sql解析加簽并不允許查詢數(shù)據(jù)庫) dataSourceSafe: false # 低代碼開發(fā)模式(dev:開發(fā)模式,prod:發(fā)布模式—關(guān)閉在線報表設(shè)計功能,分配角色admin、lowdeveloper可放開限制) lowCodeMode: dev
3、修改 org.jeecg.config.jimureport.JimuReportTokenService 加入實現(xiàn)新方法
@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. 執(zhí)行升級 sql
這里做的是從 1.4.2 升級到 1.6.5,有升級 sql 如下,其他版本請查看積木報表升級日志
ALTER TABLE jimu_report_data_sourceADD COLUMN tenant_id varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '多租戶標(biāo)識' AFTER connect_times;ALTER TABLE jimu_dictADD COLUMN tenant_id varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '多租戶標(biāo)識' AFTER type;ALTER TABLE jimu_reportADD COLUMN tenant_id varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '多租戶標(biāo)識' AFTER js_str;ALTER TABLE jimu_report_data_sourceADD 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設(shè)計器id', preview_url varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '預(yù)覽地址', 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 '密碼鎖狀態(tài)(0不存在密碼鎖,1存在密碼鎖)', PRIMARY KEY (id) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '積木報表預(yù)覽權(quán)限表' ROW_FORMAT = DYNAMIC;
三、其他官方漏洞通知專題
【漏洞通知】JeecgBoot 修復(fù) Freemarker 模板注入漏洞
- https://blog.csdn.net/zhangdaiscott/article/details/132304391
積木報表 JimuReport v1.6.2-GA5 版本發(fā)布 — 高危 SQL 漏洞安全加固版本
- https://my.oschina.net/jeecg/blog/10106055
【漏洞通知】JeecgBoot 修復(fù) SQL 注入風(fēng)險
- https://my.oschina.net/jeecg/blog/10107636
【漏洞通知】Apache Shiro 又爆認(rèn)證繞過漏洞 CVE-2023-34478
- https://blog.csdn.net/zhangdaiscott/article/details/131914652
JeecgBoot 升級 Nacos 至 2.2.3 版本解決 raft 漏洞問題
- https://blog.csdn.net/zhangdaiscott/article/details/131730495
【高危安全通告】fastjson≤1.2.80 反序列化漏洞
- https://blog.csdn.net/zhangdaiscott/article/details/124960217