SqlUtil.java 875 B

123456789101112131415161718192021222324252627282930313233
  1. package com.ruoyi.common.utils.sql;
  2. import com.ruoyi.common.exception.UtilException;
  3. import com.ruoyi.common.utils.StringUtils;
  4. /**
  5. * sql操作工具类
  6. *
  7. * @author ruoyi
  8. */
  9. public class SqlUtil {
  10. /**
  11. * 仅支持字母、数字、下划线、空格、逗号、小数点(支持多个字段排序)
  12. */
  13. public static String SQL_PATTERN = "[a-zA-Z0-9_\\ \\,\\.]+";
  14. /**
  15. * 检查字符,防止注入绕过
  16. */
  17. public static String escapeOrderBySql(String value) {
  18. if (StringUtils.isNotEmpty(value) && !isValidOrderBySql(value)) {
  19. throw new UtilException("参数不符合规范,不能进行查询");
  20. }
  21. return value;
  22. }
  23. /**
  24. * 验证 order by 语法是否符合规范
  25. */
  26. public static boolean isValidOrderBySql(String value) {
  27. return value.matches(SQL_PATTERN);
  28. }
  29. }