疫情大数据平台是一个公益的项目,但很可能被网络上大量的扫描器扫描,并有可能收到脚本的攻击,而进行防御就是很重要的,可以有效的避免我们被攻击。
本篇主要讲述防止sql注入部分
sql注入是什么
SQL是操作数据库数据的结构化查询语言,网页的应用数据和后台数据库中的数据进行交互时会采用SQL。
而SQL注入是将Web页面的原URL、表单域或数据包输入的参数,修改拼接成SQL语句,传递给Web服务器,进而传给数据库服务器以执行数据库命令。
如Web应用程序的开发人员对用户所输入的数据或cookie等内容不进行过滤或验证(即存在注入点)就直接传输给数据库,就可能导致拼接的SQL被执行,获取对数据库的信息以及提权,发生SQL注入攻击
Mybatis-plus处理
采用#传入数据
public static String safeParam(final String param,final String mapping){
String target ="" +param;
return StringUtils.isBlank(mapping) ? target +"}" : target + "," + mapping + "}";
}
.# 和 .$的区别
#:解析为一个 JDBC 预编译语句,一个#被解析为一个参数占位符 ? ,#{