diff --git a/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java index 7e2ade68..4703ab1c 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java @@ -2002,12 +2002,35 @@ public class LawsCommonServiceImpl implements ILawsCommonService { return selectFieldBuilder.toString(); } + private void checkForSQLInjection(Map parameterMap) { + // 定义要检查的特殊字符 + String[] specialCharacters = {"'", "\"", "\\", "<", ">", "&", "*", ";"}; + + for (Map.Entry entry : parameterMap.entrySet()) { + Object value = entry.getValue(); + + // 检查是否是字符串类型 + if (value instanceof String) { + String strValue = (String) value; + // 检查是否包含特殊字符 + for (String character : specialCharacters) { + if (strValue.contains(character)) { + throw new JeroBootException("输入字段中包含非法字符,请检查"); + } + } + } + } + } + /** * @Author: liao * @Date: 2023/8/23 17:16 * @Description: 封装查询条件 **/ private String getSelectCondition(Map parameterMap, List fieldList) { + // 防止SQL注入 + this.checkForSQLInjection(parameterMap); + String module = (String) parameterMap.get("module"); // 获取要操作的表名 String tableName = TableNameEnum.getTableName(module);