SQL工具类新增检查关键字方法
This commit is contained in:
		
							parent
							
								
									c28aa299bd
								
							
						
					
					
						commit
						fd3a699ad8
					
				| 
						 | 
					@ -10,6 +10,11 @@ import com.ruoyi.common.utils.StringUtils;
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
public class SqlUtil
 | 
					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);
 | 
					        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…
	
		Reference in New Issue