From 2dca6f0a129f1945e4b312b3e0dc417946327a9e Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: Fri, 01 Mar 2024 21:55:28 +0800
Subject: [PATCH] 优化匹配方式
---
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/xss/XssValidator.java | 20 +++++++++++++++-----
1 files changed, 15 insertions(+), 5 deletions(-)
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/xss/XssValidator.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/xss/XssValidator.java
index c7dfde9..0acf386 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/xss/XssValidator.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/xss/XssValidator.java
@@ -1,9 +1,10 @@
package com.ruoyi.common.core.xss;
-import javax.validation.ConstraintValidator;
-import javax.validation.ConstraintValidatorContext;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+import com.ruoyi.common.core.utils.StringUtils;
/**
* 自定义xss校验注解实现
@@ -12,18 +13,27 @@
*/
public class XssValidator implements ConstraintValidator<Xss, String>
{
- private final String HTML_PATTERN = "<(\\S*?)[^>]*>.*?|<.*? />";
+ private static final String HTML_PATTERN = "<(\\S*?)[^>]*>.*?|<.*? />";
@Override
public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext)
{
+ if (StringUtils.isBlank(value))
+ {
+ return true;
+ }
return !containsHtml(value);
}
- public boolean containsHtml(String value)
+ public static boolean containsHtml(String value)
{
+ StringBuilder sHtml = new StringBuilder();
Pattern pattern = Pattern.compile(HTML_PATTERN);
Matcher matcher = pattern.matcher(value);
- return matcher.matches();
+ while (matcher.find())
+ {
+ sHtml.append(matcher.group());
+ }
+ return pattern.matcher(sHtml).matches();
}
}
\ No newline at end of file
--
Gitblit v1.9.3