【开源】基于JAVA的木马文件检测系统

news/2024/7/10 21:46:16 标签: java, vue.js, 开源

在这里插入图片描述
项目编号: S 041 ,文末获取源码。 \color{red}{项目编号:S041,文末获取源码。} 项目编号:S041,文末获取源码。


目录

  • 一、摘要
    • 1.1 项目介绍
    • 1.2 项目录屏
  • 二、功能模块
    • 2.1 数据中心模块
    • 2.2 木马分类模块
    • 2.3 木马软件模块
    • 2.4 安全资讯模块
    • 2.5 脆弱点模块
    • 2.6 软件检测模块
  • 三、系统设计
    • 3.1 用例设计
    • 3.2 数据库设计
      • 3.2.1 木马分类表
      • 3.2.2 木马软件表
      • 3.2.3 资讯表
      • 3.2.4 脆弱点表
      • 3.2.5 软件检测表
  • 四、系统实现
  • 五、核心代码
    • 5.1 查询木马分类
    • 5.2 查询木马文件
    • 5.3 新增软件检测
    • 5.4 查询脆弱点
    • 5.5 新增安全资讯
  • 六、免责说明


一、摘要

1.1 项目介绍

基于JAVA+Vue+SpringBoot+MySQL的木马文件检测系统,包含了木马类型、木马软件档案、安全资讯、软件脆弱点、软件检测模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,木马文件检测系统基于角色的访问控制,给软件管理员、普通用户使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

1.2 项目录屏

源码下载


二、功能模块

木马是网站开发者与网站管理员所烦恼却难以清除的木马,在当前,还没有一个杀毒软件或者是检测软件能够准确的标记出木马的位置并将其清除,所以开发一套自动检测木马的软件很有意义,可以为管理员对网站的维护节约大量的时间和精力.这样的软件应该被大多数网站管理员所接受并使用,这套系统为网站的安全性增添了一项保障。

在这里插入图片描述

木马文件检测系统的功能性需求主要包含数据中心模块、木马分类模块、木马软件模块、安全资讯模块、脆弱点模块和软件检测模块这五大模块,系统是基于浏览器运行的web管理后端,其中各个模块详细说明如下:

2.1 数据中心模块

数据中心模块包含了木马文件检测系统的系统基础配置,如登录用户的管理、运营公司组织架构的管理、用户菜单权限的管理、系统日志的管理、公用文件云盘的管理。
其中登录用户管理模块,由管理员负责运维工作,管理员可以对登录用户进行增加、删除、修改、查询操作。
组织架构,指的是高校的组织架构,该模块适用于管理这些组织架构的部门层级和教师的部门归属情况。
用户菜单权限管理模块,用于管理不同权限的用户,拥有哪些具体的菜单权限。
系统日志的管理,用于维护用户登入系统的记录,方便定位追踪用户的操作情况。
公用云盘管理模块,用于统一化维护木马文件检测系统中的图片,如合同签订文件、合同照片等等。

2.2 木马分类模块

不同的木马有着不同的类型,不同类型的木马需要采用不同的方式去检测,所以需要建立木马分类模块,木马分类的数据包括类型名称、类型状态、排序值、备注、创建人、创建时间、更新人、更新时间,管理员可以新增、删除、编辑和条件查询木马类型数据,用户可以查询管理员发布的木马类型数据。

2.3 木马软件模块

木马是木马文件检测系统的核心,所以需要建立木马软件模块,木马软件的数据包括软件名称、软件描述、软件类型、文件、创建人、创建时间、更新人、更新时间,管理员和用户都可以新增、删除、编辑和条件查询木马数据。

2.4 安全资讯模块

安全资讯模块是用于将有关于木马安全防范的加以存档,由管理员定期维护。安全资讯的字段包括资讯标题、资讯内容、状态、排序值、发布人、发布时间、更新人、更新时间,管理员可以新增、删除、编辑和条件查询安全资讯数据,用户可以查询管理员发布的安全资讯数据。

2.5 脆弱点模块

木马不是凭空产生的,当软件有了脆弱点之后,木马才能乘虚而入,所以需要对软件的脆弱点进行管理。脆弱点字段包括脆弱点名称、脆弱点介绍、状态、备注、创建人、创建时间、更新人、更新时间,管理员可以新增、删除、编辑和条件查询脆弱点数据,用户可以查询管理员发布的脆弱点数据。

2.6 软件检测模块

软件检测室木马文件检测系统的核心业务,软件检测字段包括软件ID、软件名称、软件介绍、提交人、检测状态、过程报告、软件漏洞、检测人,用户可以发起软件检测申请,管理员对软件进行检测反馈,上传过程包括和复现软件漏洞。


三、系统设计

3.1 用例设计

UML是面向对象的图形化建模语言,具有表示容易,定义友好,适用范畴广泛,功能强大。用例图是用例模型的一种,需求分析人员可采用用例图表示用户操作行为。木马文件检测系统的用例图设计主要包括用户用例设计和管理员用例设计。

在这里插入图片描述

3.2 数据库设计

3.2.1 木马分类表

在这里插入图片描述

3.2.2 木马软件表

在这里插入图片描述

3.2.3 资讯表

在这里插入图片描述

3.2.4 脆弱点表

在这里插入图片描述

3.2.5 软件检测表

在这里插入图片描述


四、系统实现

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


五、核心代码

5.1 查询木马分类

java">@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询木马分类")
public Result<IPage<TrojansType>> getByPage(@ModelAttribute TrojansType trojansType ,@ModelAttribute PageVo page){
    QueryWrapper<TrojansType> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(trojansType.getTitle())) {
        qw.like("title",trojansType.getTitle());
    }
    if(!ZwzNullUtils.isNull(trojansType.getStatus())) {
        qw.eq("status",trojansType.getStatus());
    }
    IPage<TrojansType> data = iTrojansTypeService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<TrojansType>>().setData(data);
}

5.2 查询木马文件

java">@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询木马文件")
public Result<IPage<Trojans>> getByPage(@ModelAttribute Trojans trojans ,@ModelAttribute PageVo page){
    QueryWrapper<Trojans> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(trojans.getTitle())) {
        qw.like("title",trojans.getTitle());
    }
    if(!ZwzNullUtils.isNull(trojans.getType())) {
        qw.like("type",trojans.getType());
    }
    IPage<Trojans> data = iTrojansService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<Trojans>>().setData(data);
}

5.3 新增软件检测

java">@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增软件检测")
public Result<Check> insert(Check check){
    Trojans trojans = iTrojansService.getById(check.getTrojansId());
    if(trojans == null) {
        return ResultUtil.error("软件不存在");
    }
    check.setTrojansName(trojans.getTitle());
    check.setTrojansContent(trojans.getContent());
    User currUser = securityUtil.getCurrUser();
    check.setUserId(currUser.getId());
    check.setUserName(currUser.getNickname());
    check.setStatus("未检测");
    check.setAns("");
    check.setVulnerability("");
    check.setWorkId("");
    check.setWorkName("");
    check.setWorkTime("");
    iCheckService.saveOrUpdate(check);
    return new ResultUtil<Check>().setData(check);
}

5.4 查询脆弱点

java">@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询脆弱点")
public Result<IPage<Vulnerability>> getByPage(@ModelAttribute Vulnerability vulnerability ,@ModelAttribute PageVo page){
    QueryWrapper<Vulnerability> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(vulnerability.getTitle())) {
        qw.like("title",vulnerability.getTitle());
    }
    if(!ZwzNullUtils.isNull(vulnerability.getContent())) {
        qw.like("content",vulnerability.getContent());
    }
    IPage<Vulnerability> data = iVulnerabilityService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<Vulnerability>>().setData(data);
}

5.5 新增安全资讯

java">@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增安全资讯")
public Result<News> insert(News news){
    User currUser = securityUtil.getCurrUser();
    news.setSendUser(currUser.getNickname());
    news.setSendTime(DateUtil.now());
    iNewsService.saveOrUpdate(news);
    return new ResultUtil<News>().setData(news);
}

六、免责说明

  • 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
  • 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
  • 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。

下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!

  1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
  2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
  3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
  4. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

在这里插入图片描述


http://www.niftyadmin.cn/n/5247762.html

相关文章

windows下开机启动nignx、mysql、redis等服务

解决phpStudy开机自启动失败&#xff1a;创建Windows系统服务 在使用phpStudy作为我的集成开发环境时&#xff0c;我遇到了一个突然的挑战&#xff1a;服务无法在开机时自动启动。面对这一挑战&#xff0c;官方没有提供解决方案&#xff0c;所以我决定自行寻找答案。其他的服务…

Java实现屏幕截图程序(一)

在Java中&#xff0c;可以使用Robot类来实现屏幕截图程序。Robot类提供了一组用于生成输入事件和控制鼠标和键盘的方法。 Java实现屏幕截图的步骤如下&#xff1a; 导入Robot类 import java.awt.Robot;创建Robot对象 Robot robot new Robot();获取屏幕分辨率信息 Dimensi…

重写 AppiumService 类,添加默认启动参数,并实时显示启动日志

一、前置说明 在Appium的1.6.0版本中引入了AppiumService类&#xff0c;可以很方便的通过该类来管理Appium服务器的启动和停止。经过测试&#xff0c;使用该类的实例执行关闭server时&#xff0c;并没有释放端口号&#xff0c;会导致第二次启动时失败。另外&#xff0c;使用该…

MySQL-宋红康-(课P1-P5)-数据库基础

&#x1f436;一、数据库基础 1.1 为什么要使用数据库 持久化(persistence)&#xff1a;把数据保存到可掉电式存储设备中以供之后使用。 持久化的主要作用是将内存中的数据存储在数据库中&#xff0c;当然也可以存储在磁盘文件、XML数据文件中。 方便管理数据&#xff08;例…

RK3588+MCU机器人控制器解决方案

1 产品简介 XMP04A 是一款信迈科技基于 RK3588 设计的高性能、低功耗的边缘计算设备&#xff0c; 内置 NPU 算力可达 6.0TOPSINT8&#xff0c;以及具备强大的视频编解码能力&#xff0c;最高可支持 32 路 1080P30fps 解码和 16 路 1080P30fps 编码 &#xff0c;支持 4K12…

【Linux系统化学习】进程地址空间 | 虚拟地址和物理地址的关系

个人主页点击直达&#xff1a;小白不是程序媛 Linux专栏&#xff1a;Linux系统化学习 代码仓库&#xff1a;Gitee 目录 虚拟地址和物理地址 页表 进程地址空间 进程地址空间存在的意义 虚拟地址和物理地址 我们在学习C/C的时候肯定都见过下面这张有关于内存分布的图片&a…

访问控制列表ACL学习

ACL概念 ACL: ACL 是 Access Control List&#xff08;访问控制列表&#xff09;的缩写。它是一种用于管理和控制访问权限的机制或数据结构。ACL 用于确定谁可以访问特定资源&#xff08;例如文件、文件夹、网络资源等&#xff09;以及他们可以执行的操作。ACL 通常由一系列访…

消融实验:深度学习的关键分析工具

消融实验&#xff1a;深度学习的关键分析工具 在深度学习和机器学习领域&#xff0c;消融实验&#xff08;Ablation Study&#xff09;是一种重要的实验方法&#xff0c;用于理解和评估模型的各个组成部分对其整体性能的贡献。通过这种方法&#xff0c;研究人员可以更深入地了…