From c7cc39af74d48cdb249f9f7c62d99a20314210df Mon Sep 17 00:00:00 2001 From: RuoYi <yzz_ivy@163.com> Date: 星期一, 21 十一月 2022 12:19:48 +0800 Subject: [PATCH] 兼容Excel下拉框内容过多无法显示的问题(I5XB6I) --- src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java | 28 ++++++++++++++++++++++++++-- 1 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java b/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java index 39e88ef..5243849 100644 --- a/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java +++ b/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java @@ -1,6 +1,6 @@ package com.ruoyi.common.utils.sql; -import com.ruoyi.common.exception.BaseException; +import com.ruoyi.common.exception.UtilException; import com.ruoyi.common.utils.StringUtils; /** @@ -10,6 +10,11 @@ */ public class SqlUtil { + /** + * 瀹氫箟甯哥敤鐨� sql鍏抽敭瀛� + */ + public static String SQL_REGEX = "select |insert |delete |update |drop |count |exec |chr |mid |master |truncate |char |and |declare "; + /** * 浠呮敮鎸佸瓧姣嶃�佹暟瀛椼�佷笅鍒掔嚎銆佺┖鏍笺�侀�楀彿銆佸皬鏁扮偣锛堟敮鎸佸涓瓧娈垫帓搴忥級 */ @@ -22,7 +27,7 @@ { if (StringUtils.isNotEmpty(value) && !isValidOrderBySql(value)) { - throw new BaseException("鍙傛暟涓嶇鍚堣鑼冿紝涓嶈兘杩涜鏌ヨ"); + throw new UtilException("鍙傛暟涓嶇鍚堣鑼冿紝涓嶈兘杩涜鏌ヨ"); } return value; } @@ -34,4 +39,23 @@ { 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娉ㄥ叆椋庨櫓"); + } + } + } } -- Gitblit v1.9.3