Index: forgon-core/src/main/java/com/forgon/xss/util/XSSFilterUtil.java =================================================================== diff -u -r34632 -r34642 --- forgon-core/src/main/java/com/forgon/xss/util/XSSFilterUtil.java (.../XSSFilterUtil.java) (revision 34632) +++ forgon-core/src/main/java/com/forgon/xss/util/XSSFilterUtil.java (.../XSSFilterUtil.java) (revision 34642) @@ -5,6 +5,9 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; + import org.apache.commons.lang.StringUtils; /** @@ -21,7 +24,21 @@ * @return */ public static String striptXss(String value){ + //System.out.println("value1=" + value); if(StringUtils.isNotBlank(value)){ + //如果是json格式(json数组或json对象)的参数,则不运行后续相关的正则匹配与替换程序(用于处理科室供应室配置保存时由于申请科室和结算科室的参数值太多而运行慢的问题) + try{ + JSONArray.fromObject(value); + return value; + }catch(Exception e){ + + } + try{ + JSONObject.fromObject(value); + return value; + }catch(Exception e){ + + } Pattern scriptPattern = Pattern.compile("",Pattern.CASE_INSENSITIVE); value = scriptPattern.matcher(value).replaceAll(""); scriptPattern = Pattern.compile("src[\r\n]*=[\r\n]*\\\'(.*?)\\\'",Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL); @@ -55,6 +72,7 @@ value = scriptPattern.matcher(value).replaceAll(""); } + //System.out.println("value2=" + value); return value; }