首页 > 其他分享 >JeecgBoot3.0 漏洞升级 — 快速文档

JeecgBoot3.0 漏洞升级 — 快速文档

时间:2023-11-24 16:45:24浏览次数:31  
标签:COMMENT ci JeecgBoot3.0 utf8mb4 DATETIME 漏洞 SET 文档 NULL

近几年来,黑客攻击行为呈现出日益复杂和隐蔽的趋势,对个人和组织的安全造成了严重威胁。黑客们不断寻找新的漏洞和安全漏洞,利用各种手段进行网络攻击,包括恶意软件、网络钓鱼、勒索软件等。因此,我们每个人都需要关注漏洞风险,加强网络安全意识,及时更新系统补丁。目前有网友反馈受到攻击勒索,虽然我们的商业客户并没受到影响,但也请尽快升级补丁,避免未知的风险!黑客攻击现在很频繁,请一定重视!!!

一、升级 freemarker 补丁,解决执行任意命令问题

升级 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.6.5,解决无权限可访问问题

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======"

标签:COMMENT,ci,JeecgBoot3.0,utf8mb4,DATETIME,漏洞,SET,文档,NULL
From: https://www.cnblogs.com/jeecg158/p/17854087.html

相关文章

  • IDEA必备插件!一键生成接口文档
    IDEA是一款功能强大的集成开发环境(IDE),它可以帮助开发人员更加高效地编写、调试和部署软件应用程序。我们在编写完接口代码后需要进行接口调试等操作,一般需要打开额外的调试工具,而今天给大家介绍一款IDEA插件:Apipost-Helper-2.0。代码写完直接编辑器内调试、还支持生成接口文档、接......
  • 第 8 节 Python文档化
    什么是Python文档化Python文档化是指在Python代码中添加注释和文档字符串,以提供有关代码的详细信息和说明文档的内容可以包括函数、模块、类、方法等的说明,参数和返回值的描述,以及示例代码等。 Python文档化应用场景场景一:在开发过程中,编写良好的文档可以促进团队合作和代码维护。......
  • 玩转开源 | 搭建 Hugo 管理 Markdown 文档
    在工作、学习中,不可避免会要写一些文档;又或者想搭建个简单网站,记录和分享您的生活经验或知识;撰写这些文档中使用markdown是一个非常不错的选择,让我们更加聚焦在文档表达的内容上。实际上笔者的文档基本都是在Sublime中用markdown格式撰写的。在先前文章《Markdown的那些......
  • 001swagger2--接口文档生成利器
    1.配置在springboot整合swagger21.1引入jar包<dependency><groupId>com.allen.pan</groupId><artifactId>allen-pan-core</artifactId><version>1.0</version></dependency&g......
  • 防止XSS(跨站脚本攻击)漏洞
    点击查看代码-输入验证和过滤:对于用户输入的数据,进行严格的验证和过滤。可以使用正则表达式或其他验证方式,确保输入的数据符合预期的格式和内容。同时,对于特殊字符进行转义处理,防止恶意代码的注入。-输出编码:在将用户输入的内容输出到页面上时,进行正确的编码处理。使用合适......
  • python004超市购物系统-计算机毕业设计源码+LW文档
    摘 要随着国内市场经济这几十年来的蓬勃发展,突然遇到了从国外传入国内的互联网技术,互联网产业从开始的群众不信任,到现在的离不开,中间经历了很多挫折。从当初的传统销售行业抵制互联网销售,到现在传统销售与网络销售的结合模式,都代表着网络购物是一种潮流,是线下实体经济的补充,不再......
  • python005基于BS架构的在线学习与推荐系统-计算机毕业设计源码+LW文档
    摘 要现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本在线学习与推荐系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率......
  • TeraCloud国外WebDav服务器免费25GB空间 同步文档 同步数据
    TeraCloud简介:TeraCloud是日本老牌网盘,速度挺快的,此文包含设置打开TeraCloud的WebDav以及如何配置Zotero软件.速度高达200Mbps,注册即送20GB,叠加邀请码WRBUA,再送5GB,共25GB。WebDAV是一组基于超文本传输协议的技术集合,有利于用户间协同编辑和管理存储在万维网服务器文档。很......
  • 大学生社会实践申报系统的设计与实现-计算机毕业设计源码+LW文档
    摘 要随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代,大学生社会实践申报系统就是信息时代变革中的产物之一。任何系统都要遵循系统设......
  • Java模版引擎注入(SSTI)漏洞研究
    一、FreeMarker模板注入安全风险0x1:FreeMarker简介FreeMarker是一款Java语言编写的模板引擎,它是一种基于模板和程序动态生成的数据,动态生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组......