华夏-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

  1. 下载项目源码
  2. 使用IDEA导入项目
  3. 重要:配置Java环境为JDK 1.8(可在IDEA中设置)

2. 数据库配置

  1. 创建数据库(可使用phpStudy等工具)
  2. 导入数据库文件 jsh_erp.sql
  3. 使用Navicat Premium 17等工具连接数据库

3. 构建与运行

  1. 在IDEA中执行Maven命令:

    mvn clean install
    
    • clean:清理之前编译的文件
    • install:编译+打包项目,并把jar/war包安装到本地Maven仓库
    • 执行顺序:先clean,再install
  2. 启动主类:

    com.jsh.erp.JshErpApplication
    

    完整路径:

    jshERP-boot/src/main/java/com/jsh/erp/JshErpApplication.java
    
  3. 启动成功标志:

    • 控制台显示URL
    • 显示默认账号密码(可自行测试)

四、项目结构分析

1. 关键目录结构

jshERP-boot
└── src
    └── main
        └── java
            └── com
                └── jsh
                    └── erp
                        └── JshErpApplication.java ← 启动类

2. 重要配置文件

  1. pom.xml:管理项目依赖和配置

    • 源代码管理
    • 配置文件
    • 开发者信息
    • 项目授权
    • 依赖关系等
  2. 过滤器配置:com.jsh.erp.filter

    • 包含项目拦截器和过滤器

五、安全审计要点

1. 已知漏洞依赖

  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>
      
  2. 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>
      
  3. 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 {
    // 实现细节...
}

功能

  1. 忽略静态资源请求(.css, .js, 图片等)
  2. 放行特定路径(如登录、注册、API文档)
  3. 检查用户会话,未登录用户跳转到登录页

安全考虑

  • 检查是否有足够的权限控制
  • 验证XSS防护措施
  • 检查CSRF防护机制

六、部署安全建议

  1. 依赖升级

    • 将Fastjson升级到最新安全版本
    • 定期检查其他依赖的漏洞情况
  2. 输入验证

    • 对所有用户输入进行严格验证
    • 实现参数化查询防止SQL注入
  3. 会话管理

    • 加强会话安全配置
    • 实现适当的超时机制
  4. 日志监控

    • 配置详细的日志记录
    • 设置异常监控
  5. 定期审计

    • 定期进行代码安全审计
    • 监控安全公告,及时修补漏洞

七、常见问题解决

  1. 启动失败

    • 检查JDK版本是否为1.8
    • 验证数据库连接配置
    • 检查Maven依赖是否完整下载
  2. 数据库问题

    • 确保已正确导入jsh_erp.sql
    • 验证数据库用户权限
  3. 前端构建问题

    • 确保Node.js版本符合要求
    • 检查npm依赖是否完整

通过以上步骤和注意事项,您可以成功搭建华夏ERP v2.3系统并进行基本的安全审计。对于生产环境使用,强烈建议进行全面的安全评估和加固。

华夏-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命令: clean :清理之前编译的文件 install :编译+打包项目,并把jar/war包安装到本地Maven仓库 执行顺序 :先clean,再install 启动主类: 完整路径: 启动成功标志: 控制台显示URL 显示默认账号密码(可自行测试) 四、项目结构分析 1. 关键目录结构 2. 重要配置文件 pom.xml :管理项目依赖和配置 源代码管理 配置文件 开发者信息 项目授权 依赖关系等 过滤器配置: com.jsh.erp.filter 包 包含项目拦截器和过滤器 五、安全审计要点 1. 已知漏洞依赖 Fastjson : 版本:1.2.55 漏洞范围:1.2.55~1.2.68以下存在FastJson绕过导致反序列化漏洞 配置示例: Log4j : 版本:2.10.0 审计结果:该版本不存在漏洞 配置示例: MyBatis : 需注意SQL注入风险 配置示例: 2. 过滤器分析 LogCostFilter 类分析: 功能 : 忽略静态资源请求(.css, .js, 图片等) 放行特定路径(如登录、注册、API文档) 检查用户会话,未登录用户跳转到登录页 安全考虑 : 检查是否有足够的权限控制 验证XSS防护措施 检查CSRF防护机制 六、部署安全建议 依赖升级 : 将Fastjson升级到最新安全版本 定期检查其他依赖的漏洞情况 输入验证 : 对所有用户输入进行严格验证 实现参数化查询防止SQL注入 会话管理 : 加强会话安全配置 实现适当的超时机制 日志监控 : 配置详细的日志记录 设置异常监控 定期审计 : 定期进行代码安全审计 监控安全公告,及时修补漏洞 七、常见问题解决 启动失败 : 检查JDK版本是否为1.8 验证数据库连接配置 检查Maven依赖是否完整下载 数据库问题 : 确保已正确导入jsh_ erp.sql 验证数据库用户权限 前端构建问题 : 确保Node.js版本符合要求 检查npm依赖是否完整 通过以上步骤和注意事项,您可以成功搭建华夏ERP v2.3系统并进行基本的安全审计。对于生产环境使用,强烈建议进行全面的安全评估和加固。