基于JAVA的木马文件检测系统 开源项目
目录
一、摘要
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 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。
下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!
- 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
- 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
- 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
- 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!