33import cn .hutool .crypto .SecureUtil ;
44import lombok .extern .slf4j .Slf4j ;
55import org .jeecg .common .exception .JeecgBootException ;
6+
67import javax .servlet .http .HttpServletRequest ;
78import java .lang .reflect .Field ;
89import java .util .Set ;
@@ -21,7 +22,7 @@ public class SqlInjectionUtil {
2122 * (上线修改值 20200501,同步修改前端的盐值)
2223 */
2324 private final static String TABLE_DICT_SIGN_SALT = "20200501" ;
24- private final static String XSS_STR = "and |extractvalue|updatexml|exec |insert |select |delete |update |drop |count |chr |mid |master |truncate |char |declare |;|or |+|user()" ;
25+ private final static String XSS_STR = "and |extractvalue|updatexml|geohash|gtid_subset|gtid_subtract| exec |insert |select |delete |update |drop |count |chr |mid |master |truncate |char |declare |;|or |+|user()" ;
2526
2627 /**
2728 * 正则 user() 匹配更严谨
@@ -33,7 +34,7 @@ public class SqlInjectionUtil {
3334 /**
3435 * sql注释的正则
3536 */
36- private final static Pattern SQL_ANNOTATION = Pattern .compile ("/\\ *. *\\ */" );
37+ private final static Pattern SQL_ANNOTATION = Pattern .compile ("/\\ *[ \\ s \\ S] *\\ */" );
3738
3839 /**
3940 * 针对表字典进行额外的sign签名校验(增加安全机制)
@@ -167,7 +168,7 @@ public static void filterContent(String[] values, String customXssString) {
167168 */
168169 //@Deprecated
169170 public static void specialFilterContentForDictSql (String value ) {
170- String specialXssStr = " exec |extractvalue|updatexml| insert | select | delete | update | drop | count | chr | mid | master | truncate | char | declare |;|+|user()" ;
171+ String specialXssStr = " exec |extractvalue|updatexml|geohash|gtid_subset|gtid_subtract| insert | select | delete | update | drop | count | chr | mid | master | truncate | char | declare |;|+|user()" ;
171172 String [] xssArr = specialXssStr .split ("\\ |" );
172173 if (value == null || "" .equals (value )) {
173174 return ;
@@ -201,7 +202,7 @@ public static void specialFilterContentForDictSql(String value) {
201202 */
202203 //@Deprecated
203204 public static void specialFilterContentForOnlineReport (String value ) {
204- String specialXssStr = " exec |extractvalue|updatexml| insert | delete | update | drop | chr | mid | master | truncate | char | declare |user()" ;
205+ String specialXssStr = " exec |extractvalue|updatexml|geohash|gtid_subset|gtid_subtract| insert | delete | update | drop | chr | mid | master | truncate | char | declare |user()" ;
205206 String [] xssArr = specialXssStr .split ("\\ |" );
206207 if (value == null || "" .equals (value )) {
207208 return ;
0 commit comments