1.测试目的与范围

1.1. 测试目的

本次测试的目的是为了评估教育机构管理系统的安全性,发现其中的漏洞和弱点,以便修复它们并提高其安全性。通过安全测试,可以确保系统或应用程序在实际运行中能够抵御各种安全威胁和攻击,从而保障组织的数据和资产不受损失。安全测试可以包括对系统、应用程序或网络的各个方面进行测试,例如身份验证、访问控制、加密、漏洞扫描等,旨在发现潜在的安全风险并提供解决方案,以提高系统或应用程序的安全性和可靠性。

2. 测试工具及资源

2.1. 测试工具

  • Sqlmap:一个自动化的SQL注入工具,其主要功能是扫描、发现并利用给定URL的SQL注入漏洞,内置了很多绕过插件,支持的数据库是MySQL 、Oracle 、PostgreSQL 、Microsoft SQL Server、Microsoft Access 、IBM DB2, SQ Lite 、Firebird 、Sybase和SAPMaxDB。

2.2. 测试资源

本次测试使用了以下测试资源:

  • 测试环境:使用了一台计算机作为测试环境,部署了教育机构管理系统的后端程序和数据库,提供了端口号。
  • 测试数据:使用了一些模拟的用户信息、招生计划信息、评论信息、课程信息等作为测试数据,存储在数据库中,用于进行安全测试。

3. 测试记录及结果分析

3.1. 安全测试

3.1.1. 测试结果数据

 使用sqlmap输入“python sqlmap.py -u "http://172.24.122.29:8000/customer/id=1"”进行sql注入攻击测试。得出以下结果,如下图所示:

结果:sql注入失败,无法得到想要的结果。

3.1.2. 结果分析

由于本系统使用的是springboot这种开发框架,自带了防止SQL注入技术,在MybatisPlus框架下的实现了阻止SQL注入手段。在执行SQL查询或更新之前,SpringBoot会创建一个预处理语句(Prepared Statement),该语句会自动通过参数绑定来过滤所有输入的用户数据,从而避免了SQL注入。具体来说,SpringBoot将所有输入数据作为参数传递给SQL查询或更新语句,而不是将它们直接插入到语句中。在运行时,数据库会将这些参数绑定到预编译语句中,而不是直接拼接到SQL字符串中。这样可以确保输入的所有数据都会得到正确的处理,并且避免了恶意用户注入任意代码。

4. 测试结论

本次安全测试的结论如下:

Mybatis-Plus 是 Mybatis 的增强工具,在防止 SQL 注入方面也提供了一些解决方案,主要有以下几种:

1.使用内置的 CRUD 方法

Mybatis-Plus 内置了许多 CRUD 方法,如 selectById、insert、updateById 等,这些方法都会对参数进行预编译,从而有效地防止了 SQL 注入。

2.使用 @Param 注解

在使用 Mybatis-Plus 提供的自定义 SQL 时,可以使用 @Param 注解给参数命名,例如:

java复制代码

@Select("SELECT * FROM user WHERE name = #{name} AND age = #{age}")

List<User> selectByNameAndAge(@Param("name") String name, @Param("age") Integer age);

这样就能够确保参数值不会被当做 SQL 语句的一部分来执行。

3.使用实体类作为参数

还可以将实体类作为参数传递到自定义 SQL 中,Mybatis-Plus 会根据实体类中的属性值来生成预编译语句,从而避免 SQL 注入的风险。例如:

java复制代码

@Select("SELECT * FROM user WHERE name = #{user.name} AND age = #{user.age}")

List<User> selectByUser(@Param("user") User user);

4.使用 SQL 注入器

Mybatis-Plus 还提供了一个 SQL 注入器的接口 ISqlInjector,可以进行自定义 SQL 注入器的开发,实现更加灵活的 SQL 注入防御。

《教育培训机构管理系统》安全测试相关推荐

  1. 教育培训机构学生管理系统

    摘  要 计算机网络如果结合使用信息管理系统,能够提高管理员管理的效率,改善服务质量.优秀的教育培训机构学生管理系统能够更有效管理教育培训机构学生信息业务规范,帮助管理者更加有效管理教育培训机构学生信 ...

  2. 教育培训机构用管理系统能做什么?

    社会的发展,促使各行各业都要进行转型,特别是教育培训行业,不改革只会渐渐被社会淘汰,信息化管理可以促使培训机构适应不断发展的社会,应对各种挑战以及市场前景机会,实现整个行业的信息化管理. 培训机构为什 ...

  3. 权限管理系统设计_多校区的教育培训机构,如何选择培训学校crm管理系统?

    前几天,一个做外语培训学校的朋友找到我,一脸愁云.原来,他们现在的学校crm管理系统是XX,前些年购买的,当时他们一个校区,近几年他们业务发展的很快,目前,光在武汉就已经有3家校区了,今年还准备在外地 ...

  4. JAVA计算机毕业设计教育培训机构信息管理系统Mybatis+系统+数据库+调试部署

    JAVA计算机毕业设计教育培训机构信息管理系统Mybatis+系统+数据库+调试部署 JAVA计算机毕业设计教育培训机构信息管理系统Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B ...

  5. 计算机毕业设计Java教育培训机构信息管理系统(源码+系统+mysql数据库+lW文档)

    计算机毕业设计Java教育培训机构信息管理系统(源码+系统+mysql数据库+lW文档) 计算机毕业设计Java教育培训机构信息管理系统(源码+系统+mysql数据库+lW文档) 本源码技术栈: 项目 ...

  6. 分享一款教育培训机构学员信息管理系统

    平台入口:http://edu.abc168.online 学员是培训机构的运营主体,对培训机构来说,做好学员管理,往往能直接反映出机构的管理水平和教师的教学水平,是机构建立形象和口碑的关键.以往,培 ...

  7. JAVA教育培训机构信息管理系统计算机毕业设计Mybatis+系统+数据库+调试部署

    JAVA教育培训机构信息管理系统计算机毕业设计Mybatis+系统+数据库+调试部署 JAVA教育培训机构信息管理系统计算机毕业设计Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B ...

  8. Java毕设项目教育培训机构信息管理系统(java+VUE+Mybatis+Maven+Mysql)

    Java毕设项目教育培训机构信息管理系统(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX ...

  9. Java毕设项目教育培训机构信息管理系统计算机(附源码+系统+数据库+LW)

    Java毕设项目教育培训机构信息管理系统计算机(附源码+系统+数据库+LW) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行) ...

最新文章

  1. 6 计算机应用技,2019年10月自考计算机应用技术习题及答案6
  2. SQL实现当前行等于前面两行数据之和
  3. @Transactional 事务失效记录
  4. redis——redis持久化处理
  5. 如何设置ftp服务器上传文件夹至不同路径,设置ftp服务器上传文件夹
  6. Docker-服务安装
  7. 系统学习NLP(十九)--文本分类之FastText
  8. cad管线交叉怎么画_CAD命令:打断(BREAK)命令的使用技巧
  9. input正则邮箱_javascript写一个校验邮箱的正则表达式
  10. php 判断邮箱_php检测邮箱地址是否存在
  11. vue项目使用阿里矢量图标库
  12. 上海电信光猫设置虚拟服务器,你们想要的上海电信光猫桥接+4K IPTV配置流程...
  13. javaScript实现百度换肤案例
  14. antd的timePicker.RangePicker设置结束时间不可早于开始时间
  15. 联想用u盘重装系统步骤_练习联想使用u盘重装win7教程
  16. avr单片机c语言计算log,AVR单片机定时器初值计算公式与方法 - 单片机定时器初值计算公式(51单片机和AVR单片机的初值计算三种方法)...
  17. “郭德纲”挤兑死人不带脏字,经典…
  18. 盘点2018上半年最受欢迎的前端开发!
  19. 艾宾浩斯遗忘曲线复习计划表
  20. Layui.open 弹出上传图片、视频预览

热门文章

  1. Linux打包(归档)和压缩详解
  2. 【CTR预估】简单介绍
  3. DS二叉树—二叉树结点的最大距离
  4. matlab画图形的包络图,求大神指点绘制空间内散点图的包络面,,,散点程序如下...
  5. 小学计算机课题研究方案,小学信息技术课堂作业有效性的实践研究方案
  6. chm打开只显示目录,但是显示不出来详细内容
  7. 年薪百万+江景公寓免费住!优链时代2023元宇宙全球招聘开启!
  8. 7. 输入/输出系统
  9. python判断身份证真伪
  10. java中文名转成大写字母_Java 将汉字转换为拼音并取首字母大写