mybatis SQL注入攻击 以及XSS攻击csrf攻击
以上攻击形式跟原理不多做介绍,此处记录处理方案
SQL注入
问题:系统在经过安全扫描是,被告知存在SQL注入的封信,mybatis的预编译是不存在注入风险的,但是在排序字段的处理上,没法使用预编译,同时,在个别字段,存在使用$取值等不规范的操作,以上操作均会出现注入的风险
注入代码实例:
字段添加如下信息,虽然报错,但是会暴露出数据库用户跟数据库IP的信息。
extractvalue(1,concat(0x7e, (user()),0x7e))
解决方式:
对于排序字段,采用抢控,即排序字段在set方法里边,一旦检测出,存在SQL关键字,就将整个排序字段值销毁掉,特别的,干掉有“()”的字符串。
对于正常字段,根据正则表达式过滤,一旦字段值存在异常,则抛出异常,正则参考如下内容(次正则还需校验)
=====================正则表达式=============================
\b(and|or)\b.{
1,6}?(=|>|<|\bin\b|\blike\b)|
\/\