华夏-ERPv2.3搭建&审计
字数 1598 2025-08-26 22:11:35
华夏-ERP v2.3 搭建与安全审计指南
一、系统介绍
华夏ERP-2.3 是一款面向中小企业的开源 ERP 系统,基于以下技术构建:
- 后端:SpringBoot + MyBatis
- 前端:jQuery、EasyUI 和 AdminLTE
系统特点:
- 开源免费
- 易于部署
- 支持多用户权限控制
- 适合学习和二次开发
安全注意事项:v2.3 版本依赖库较旧,存在已知安全漏洞(如SQL注入、Fastjson反序列化、XSS等),实际部署需进行安全加固。
二、环境准备
1. 开发工具要求
| 工具 | 版本要求 | 备注 |
|---|---|---|
| JDK | 1.8 或 11 | 推荐 JDK 1.8 (即 jdk8) |
| Maven | 3.6+ | |
| Node.js + npm | 推荐 14.x/16.x | 前端构建需要 |
| 数据库 | MySQL 5.7 或 8.0 | 推荐 MySQL 5.7 |
| IDE | IntelliJ IDEA |
2. 下载地址
项目发布版本:https://github.com/jishenghua/jshERP/releases
三、搭建步骤
1. 导入项目到IDEA
- 下载项目源码
- 使用IDEA导入项目
- 重要:配置Java环境为JDK 1.8(可在IDEA中设置)
2. 数据库配置
- 创建数据库(可使用phpStudy等工具)
- 导入数据库文件
jsh_erp.sql - 使用Navicat Premium 17等工具连接数据库
3. 构建与运行
-
在IDEA中执行Maven命令:
mvn clean installclean:清理之前编译的文件install:编译+打包项目,并把jar/war包安装到本地Maven仓库- 执行顺序:先clean,再install
-
启动主类:
com.jsh.erp.JshErpApplication完整路径:
jshERP-boot/src/main/java/com/jsh/erp/JshErpApplication.java -
启动成功标志:
- 控制台显示URL
- 显示默认账号密码(可自行测试)
四、项目结构分析
1. 关键目录结构
jshERP-boot
└── src
└── main
└── java
└── com
└── jsh
└── erp
└── JshErpApplication.java ← 启动类
2. 重要配置文件
-
pom.xml:管理项目依赖和配置- 源代码管理
- 配置文件
- 开发者信息
- 项目授权
- 依赖关系等
-
过滤器配置:
com.jsh.erp.filter包- 包含项目拦截器和过滤器
五、安全审计要点
1. 已知漏洞依赖
-
Fastjson:
- 版本:1.2.55
- 漏洞范围:1.2.55~1.2.68以下存在FastJson绕过导致反序列化漏洞
- 配置示例:
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.55</version> </dependency>
-
Log4j:
- 版本:2.10.0
- 审计结果:该版本不存在漏洞
- 配置示例:
<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-to-slf4j</artifactId> <version>2.10.0</version> <scope>compile</scope> </dependency>
-
MyBatis:
- 需注意SQL注入风险
- 配置示例:
<dependency> <groupId>com.gitee.starblues</groupId> <artifactId>springboot-plugin-framework-extension-mybatis</artifactId> <version>2.2.1-RELEASE</version> </dependency>
2. 过滤器分析
LogCostFilter 类分析:
@WebFilter(filterName = "LogCostFilter",
urlPatterns = "/*",
initParams = {
@WebInitParam(name = "ignoredUrl", value = ".css#.js#.jpg#.png#.gif#.ico"),
@WebInitParam(name = "filterPath", value = "/user/login#/user/registerUser#/v2/api-docs")
})
public class LogCostFilter implements Filter {
// 实现细节...
}
功能:
- 忽略静态资源请求(.css, .js, 图片等)
- 放行特定路径(如登录、注册、API文档)
- 检查用户会话,未登录用户跳转到登录页
安全考虑:
- 检查是否有足够的权限控制
- 验证XSS防护措施
- 检查CSRF防护机制
六、部署安全建议
-
依赖升级:
- 将Fastjson升级到最新安全版本
- 定期检查其他依赖的漏洞情况
-
输入验证:
- 对所有用户输入进行严格验证
- 实现参数化查询防止SQL注入
-
会话管理:
- 加强会话安全配置
- 实现适当的超时机制
-
日志监控:
- 配置详细的日志记录
- 设置异常监控
-
定期审计:
- 定期进行代码安全审计
- 监控安全公告,及时修补漏洞
七、常见问题解决
-
启动失败:
- 检查JDK版本是否为1.8
- 验证数据库连接配置
- 检查Maven依赖是否完整下载
-
数据库问题:
- 确保已正确导入jsh_erp.sql
- 验证数据库用户权限
-
前端构建问题:
- 确保Node.js版本符合要求
- 检查npm依赖是否完整
通过以上步骤和注意事项,您可以成功搭建华夏ERP v2.3系统并进行基本的安全审计。对于生产环境使用,强烈建议进行全面的安全评估和加固。