Java实现木马文件检测系统 JAVA+Vue+SpringBoot+MySQL

在这里插入图片描述


目录

  • 一、摘要
    • 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 查询木马分类

@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 查询木马文件

@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 新增软件检测

@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 查询脆弱点

@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 新增安全资讯

@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. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/354289.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

「 典型安全漏洞系列 」07.OS命令注入详解

引言&#xff1a;什么是操作系统命令注入&#xff0c;如何防御和利用漏洞&#xff1f; 1. 简介 操作系统命令注入&#xff08;OS command injection&#xff09;是一种Web安全漏洞&#xff0c;允许攻击者在运行应用程序的服务器上执行任意操作系统&#xff08;OS&#xff09;命…

静态分析Golang语言生成函数调用关系的利器——go-callvis

目录 升级go删除旧版本安装新版本配置环境变量载入环境修改当前环境修改之后进入的环境 分析安装go-callvis分析其他包总结 导出文件总结 清晰主体脉络总结 其他 参考资料 不同于之前分析C语言项目的工具&#xff0c;go-callvis还是很方便使用。只要把两项工作做好就能顺利的使…

条件变量、线程池以及线程的GDB调试学习笔记

目录 一、条件变量 二、线程池概念和实现 三、线程的GDB调试 一、条件变量 应用场景&#xff1a;生产者消费者问题&#xff0c;是线程同步的一种手段。 必要性&#xff1a;为了实现等待某个资源&#xff0c;让线程休眠&#xff0c;提高运行效率 使用步骤&#xff1a; 初始…

SpringMVC 的请求流程(高频面试题)

文章目录 SpringMVC是什么&#xff0c;好处请求流程 SpringMVC 是什么&#xff0c;好处 Spring MVC 是Spring上最重要的框架。它是Web 框架&#xff0c;按照MVC 的模式&#xff0c;实现代码的解耦。Model 业务层、View 视图层、Controller 控制层。 将view层的请求数据在con…

【Android】在电脑连接操控手机上的Termux终端实现步骤

在Android手机上有一个Termux APP&#xff0c;可运行类似 Linux 终端的模拟器&#xff0c;想要学习Linux命令操作的话&#xff0c;可以用来练习&#xff0c;手机上输入命令不方便的话&#xff0c;可以用电脑连接手机终端输入命令练习的&#xff0c;来看看怎么实现连接。 文章目…

Advances in Deep Concealed Scene Understanding (伪装场景理解综述解读)

论文地址&#xff1a;https://link.springer.com/article/10.1007/s44267-023-00019-6 摘要 伪装场景理解是一个热门的计算机视觉课题&#xff0c;旨在感知展示伪装的物体&#xff0c;当前技术和应用的繁荣需要最新的研究调查&#xff0c;这可以帮助研究人员更好的了解全球CS…

【大数据】Flink 架构(四):状态管理

Flink 架构&#xff08;四&#xff09;&#xff1a;状态管理 1.算子状态2.键值分区状态3.状态后端4.有状态算子的扩缩容4.1 带有键值分区状态的算子4.2 带有算子列表状态的算子4.3 带有算子联合列表状态的算子4.4 带有算子广播状态的算子 在前面的博客中我们指出&#xff0c;大…

做成任何事情的方法

怎么样把一件事情做成功呢&#xff1f; 传统的方法可能会告诉你&#xff1a;你首先要有一个目标&#xff0c;目标要明确&#xff0c;可量化&#xff0c;要遵循 SMART 原则&#xff1b;然后再把目标拆成一个个小目标&#xff0c;先实现一个小目标&#xff0c;再实现一个小目标&a…

研发日记,Matlab/Simulink避坑指南(八)——else if分支结构Bug

文章目录 前言 背景介绍 问题描述 分析排查 解决方案 总结归纳 前言 见《研发日记&#xff0c;Matlab/Simulink避坑指南(三)——向上取整Bug》 见《研发日记&#xff0c;Matlab/Simulink避坑指南(四)——transpose()转置函数Bug》 见《研发日记&#xff0c;Matlab/Simuli…

Java强训day7(选择题编程题)

选择题 public class Test01{private static int x 100;public static void main(String[] args) {Test01 hs1 new Test01();hs1.x;Test01 hs2 new Test01();hs2.x;hs1new Test01();hs1.x;Test01.x--;System.out.println("x"x);} }public class Test01{private …

高级IO之epoll模型

一、epoll模型介绍 epoll是Linux内核为处理大批量文件描述符而作了改进的poll&#xff0c;是Linux下多路复用IO接口select/poll的增强版本&#xff0c;用于监视一个或多个文件描述符&#xff0c;以查看它们是否可以进行读取、写入或异常处理。它能够显著提高程序在大量并发连接…

C语言系列-浮点数在内存中的存储

&#x1f308;个人主页: 会编程的果子君 ​&#x1f4ab;个人格言:“成为自己未来的主人~” 目录 浮点数在内存中的存储 浮点数的存储 浮点数存的过程 浮点数取的过程 题目解析 浮点数在内存中的存储 常见的浮点数&#xff1a;3.14159.1E10等&#xff0c;浮点数家族包括&…

微信开发者工具 git 拉取 failed invalid authentication scheme

微信开发者工具 git 拉取 failed invalid authentication scheme 拉取代码时报错,无效身份认证 解决方案: 1.检查git地址是否正常 2.检查git用户名密码是否正确

【Vue2 + ElementUI】更改el-select的自带的下拉图标为倒三角,并设置相关文字颜色和大小

效果图 实现 <template><div class"search_resources"><div class"search-content"><el-select class"search-select" v-model"query.channel" placeholder"请选择" change"handleResource&q…

【Matlab】音频信号分析及FIR滤波处理——凯泽(Kaiser)窗

一、前言 1.1 课题内容: 利用麦克风采集语音信号(人的声音、或乐器声乐),人为加上环境噪声(窄带)分析上述声音信号的频谱,比较两种情况下的差异根据信号的频谱分布,选取合适的滤波器指标(频率指标、衰减指标),设计对应的 FIR 滤波器实现数字滤波,将滤波前、后的声音…

258:vue+openlayers加载mapbox-style的地图

第258个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers中添加mapbox地图,跟之前的不同处理方式是,这里采用了ol-mapbox-style插件来加载mapbox地图。具体请参考源代码和API。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果 文章目录 示…

基于Micropython利用ESP32-C3墨水屏电子时钟方法

本篇笔记介绍一下我们设计制作的墨水屏时钟。 1、所需硬件 1&#xff09;合宙的ESP32-C3&#xff1a; 2&#xff09;电子价签拆出来的2.9寸墨水屏&#xff1a; ——电子价签型号为&#xff1a;Stellar-L&#xff0c;墨水屏型号为&#xff1a;E029A01。 3&#xff09;自己设计…

Linux-ROS学习之旅(一)

##本人使用的是双系统&#xff0c;noetic版本&#xff0c;学习ROS初衷是学习控制机械臂&#xff0c;具体下载方法见B站&#xff0c;观看的教程是古月居早年的教学视频&#xff0c;和ROS_wiki&#xff1a;ROS/Tutorials - ROS Wiki ##下一篇文章有具体的实例&#xff0c;但是所用…

OJ_阶乘的和

题干 c语言实现 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<vector> #include<set> using namespace std;int main() {vector<int> factorialArr;//把0&#xff01;放入数组factorialArr.push_back(1);int curFactorial 1;for (in…

《合成孔径雷达成像算法与实现》Figure5.16

clc clear close all距离向参数 R_eta_c 20e3; % 景中心斜距 Tr 25e-6; % 发射脉冲时宽 Kr 0.25e12; % 距离向调频率 Fr 7.5e6; % 距离向采样率 Nrg 256; % 距离线采样点数 Bw abs(Kr*Tr); …