1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- package org.jeecg.common.util;
- import lombok.extern.slf4j.Slf4j;
- /**
- * sql注入处理工具类
- *
- * @author zhoujf
- */
- @Slf4j
- public class SqlInjectionUtil {
- final static String XSS_STR = "'|and |exec |insert |select |delete |update |drop |count |chr |mid |master |truncate |char |declare |;|or |+|,";
- /**
- * sql注入过滤处理,遇到注入关键字抛异常
- *
- * @param value
- * @return
- */
- public static void filterContent(String value) {
- if (value == null || "".equals(value)) {
- return;
- }
- // 统一转为小写
- value = value.toLowerCase();
- String[] xssArr = XSS_STR.split("\\|");
- for (int i = 0; i < xssArr.length; i++) {
- if (value.indexOf(xssArr[i]) > -1) {
- log.error("请注意,值可能存在SQL注入风险!---> {}", value);
- throw new RuntimeException("请注意,值可能存在SQL注入风险!--->" + value);
- }
- }
- return;
- }
- /**
- * sql注入过滤处理,遇到注入关键字抛异常
- *
- * @param values
- * @return
- */
- public static void filterContent(String[] values) {
- String[] xssArr = XSS_STR.split("\\|");
- for (String value : values) {
- if (value == null || "".equals(value)) {
- return;
- }
- // 统一转为小写
- value = value.toLowerCase();
- for (int i = 0; i < xssArr.length; i++) {
- if (value.indexOf(xssArr[i]) > -1) {
- log.error("请注意,值可能存在SQL注入风险!---> {}", value);
- throw new RuntimeException("请注意,值可能存在SQL注入风险!--->" + value);
- }
- }
- }
- return;
- }
- /**
- * @特殊方法(不通用) 仅用于字典条件SQL参数,注入过滤
- * @param value
- * @return
- */
- @Deprecated
- public static void specialFilterContent(String value) {
- String specialXssStr = "exec |insert |select |delete |update |drop |count |chr |mid |master |truncate |char |declare |;|+|,";
- String[] xssArr = specialXssStr.split("\\|");
- if (value == null || "".equals(value)) {
- return;
- }
- // 统一转为小写
- value = value.toLowerCase();
- for (int i = 0; i < xssArr.length; i++) {
- if (value.indexOf(xssArr[i]) > -1) {
- log.error("请注意,值可能存在SQL注入风险!---> {}", value);
- throw new RuntimeException("请注意,值可能存在SQL注入风险!--->" + value);
- }
- }
- return;
- }
- }
|