package org.jeecg.modules.system.util;
|
|
import org.springframework.web.util.HtmlUtils;
|
|
import java.util.regex.Pattern;
|
|
/**
|
* @Description: 工具类XSSUtils,现在的做法是替换成空字符,CSDN的是进行转义,比如文字开头的"<"转成<
|
* @author: lsq
|
* @date: 2021年07月26日 19:13
|
*/
|
public class XSSUtils {
|
public static String striptXSS(String value) {
|
if (value != null) {
|
value = value.replaceAll(" ", "");
|
Pattern scriptPattern = Pattern.compile("<script>(.*?)</script>", 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("</script>", Pattern.CASE_INSENSITIVE);
|
value = scriptPattern.matcher(value).replaceAll("");
|
scriptPattern = Pattern.compile("<script(.*?)>", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL);
|
value = scriptPattern.matcher(value).replaceAll("");
|
scriptPattern = Pattern.compile("eval\\((.*?)\\)", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL);
|
value = scriptPattern.matcher(value).replaceAll("");
|
scriptPattern = Pattern.compile("expression\\((.*?)\\)", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL);
|
value = scriptPattern.matcher(value).replaceAll("");
|
scriptPattern = Pattern.compile("javascript:", Pattern.CASE_INSENSITIVE);
|
value = scriptPattern.matcher(value).replaceAll("");
|
scriptPattern = Pattern.compile("vbscript:", Pattern.CASE_INSENSITIVE);
|
value = scriptPattern.matcher(value).replaceAll("");
|
scriptPattern = Pattern.compile("onload(.*?)=", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL);
|
value = scriptPattern.matcher(value).replaceAll("");
|
}
|
return HtmlUtils.htmlEscape(value);
|
}
|
|
public static void main(String[] args) {
|
String s = striptXSS("<img src=x onload=alert(111).*?><script></script>javascript:eval()\\\\.");
|
System.err.println("s======>" + s);
|
}
|
}
|