SQL工具类新增检查关键字方法
This commit is contained in:
		
							parent
							
								
									c28aa299bd
								
							
						
					
					
						commit
						fd3a699ad8
					
				@ -10,6 +10,11 @@ import com.ruoyi.common.utils.StringUtils;
 | 
			
		||||
 */
 | 
			
		||||
public class SqlUtil
 | 
			
		||||
{
 | 
			
		||||
    /**
 | 
			
		||||
     * 定义常用的 sql关键字
 | 
			
		||||
     */
 | 
			
		||||
    public static String SQL_REGEX = "select |insert |delete |update |drop |count |exec |chr |mid |master |truncate |char |and |declare ";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 仅支持字母、数字、下划线、空格、逗号、小数点(支持多个字段排序)
 | 
			
		||||
     */
 | 
			
		||||
@ -34,4 +39,23 @@ public class SqlUtil
 | 
			
		||||
    {
 | 
			
		||||
        return value.matches(SQL_PATTERN);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * SQL关键字检查
 | 
			
		||||
     */
 | 
			
		||||
    public static void filterKeyword(String value)
 | 
			
		||||
    {
 | 
			
		||||
        if (StringUtils.isEmpty(value))
 | 
			
		||||
        {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        String[] sqlKeywords = StringUtils.split(SQL_REGEX, "\\|");
 | 
			
		||||
        for (int i = 0; i < sqlKeywords.length; i++)
 | 
			
		||||
        {
 | 
			
		||||
            if (StringUtils.indexOfIgnoreCase(value, sqlKeywords[i]) > -1)
 | 
			
		||||
            {
 | 
			
		||||
                throw new UtilException("参数存在SQL注入风险");
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user