Index: forgon-core/src/main/java/com/forgon/xss/util/XSSFilterUtil.java =================================================================== diff -u -r26905 -r34613 --- forgon-core/src/main/java/com/forgon/xss/util/XSSFilterUtil.java (.../XSSFilterUtil.java) (revision 26905) +++ forgon-core/src/main/java/com/forgon/xss/util/XSSFilterUtil.java (.../XSSFilterUtil.java) (revision 34613) @@ -15,6 +15,45 @@ public class XSSFilterUtil { private static List patterns = null; + /** + * 处理存储型与反射型xss攻击漏洞(QYSRMYY-42 修复渗透测试扫描出来的存储型和反射型XSS漏洞) + * @param value + * @return + */ + public static String striptXss(String value){ + if(StringUtils.isNotBlank(value)){ + value = value.replaceAll("<", "<"); + value = value.replaceAll(">", ">"); + //下面两行会影响正常的json数据传送,暂先注释 + //value = value.replaceAll("\\\"", """); + //value = value.replaceAll("&", "&"); + + 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); + value = scriptPattern.matcher(value).replaceAll(""); + scriptPattern = Pattern.compile("src[\r\n]*=[\r\n]*\\\"(.*?)\\\"",Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL); + value = scriptPattern.matcher(value).replaceAll(""); + scriptPattern = Pattern.compile("",Pattern.CASE_INSENSITIVE); + value = scriptPattern.matcher(value).replaceAll(""); + scriptPattern = Pattern.compile("