mirror of
				https://github.com/dromara/RuoYi-Vue-Plus.git
				synced 2025-11-04 16:23:42 +08:00 
			
		
		
		
	Merge remote-tracking branch 'ruoyi-vue/master' into dev
# Conflicts: # pom.xml # ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java
This commit is contained in:
		@@ -12,6 +12,12 @@ import lombok.NoArgsConstructor;
 | 
			
		||||
 */
 | 
			
		||||
@NoArgsConstructor(access = AccessLevel.PRIVATE)
 | 
			
		||||
public class SqlUtil {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 定义常用的 sql关键字
 | 
			
		||||
     */
 | 
			
		||||
    public static String SQL_REGEX = "select |insert |delete |update |drop |count |exec |chr |mid |master |truncate |char |and |declare ";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 仅支持字母、数字、下划线、空格、逗号、小数点(支持多个字段排序)
 | 
			
		||||
     */
 | 
			
		||||
@@ -33,4 +39,19 @@ public class SqlUtil {
 | 
			
		||||
    public static boolean isValidOrderBySql(String value) {
 | 
			
		||||
        return value.matches(SQL_PATTERN);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * SQL关键字检查
 | 
			
		||||
     */
 | 
			
		||||
    public static void filterKeyword(String value) {
 | 
			
		||||
        if (StringUtils.isEmpty(value)) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        String[] sqlKeywords = StringUtils.split(SQL_REGEX, "\\|");
 | 
			
		||||
        for (String sqlKeyword : sqlKeywords) {
 | 
			
		||||
            if (StringUtils.indexOfIgnoreCase(value, sqlKeyword) > -1) {
 | 
			
		||||
                throw new UtilException("参数存在SQL注入风险");
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user