sqltoy-orm 5.6.45.RC3 已经发布,ORM 框架
sqltoy-orm 5.6.45.RC3 已经发布,ORM 框架
此版本更新内容包括:
1、增加@secure-loop 和 @secure-loop-full 非注入循环
- secure-loop自动去除循环中的null记录,secure-loop-full则不去除null记录
selet * from table t1
where 1=1 #[(@secure-loop(:nameList ,' t1.name like :nameList[i] ',' or '))]
- secure-loop跟@value(:name)以及valid-sqlInjection组合完全替代之前loop拼接(原则上能不用@value尽量不用)
String sql = """
selet * from table t1
where 1=1 #[@secure-loop(:nameList ,' t1.name like @value(:nameList[i]) and t.status=:status',' or ')]
""";
2、增加了对sql中参数进行sql注入校验功能
<sql id="show_case">
<filters>
<!-- 一般针对@loop(:paramList)、@value(:paramName) 中涉及到的参数进行sql注入校验:
level分3种:
STRICT_WORD 数字字符下划线;
RELAXED_WORD:宽松形式的单词(允许点号、@、#、中文等非危险性符号);
SQL_KEYWORD sql关键词(select\drop\limit\delete\sleep\group by\order by\ or/and x=x 等) -->
<valid-sqlInjection params="productIds" level="STRICT_WORD"/>
</filters>
</sql>
sql关键词可以通过参数自定义:数组形式,定义正则表达式
spring.sqltoy.sqlInjectionRegexes[0]=xxxx
spring.sqltoy.sqlInjectionRegexes[0]=xxxx
详情查看:https://gitee.com/sagacity/sagacity-sqltoy/releases/5.6.45.RC3