@ -17,6 +17,7 @@ import java.io.IOException;
@@ -17,6 +17,7 @@ import java.io.IOException;
/ * *
* < p >
* 扩展 Security 默认 StrictHttpFirewall ( XSS ) 脚本攻击过滤
* XSS 、 sql过滤处理
* < / p >
*
@ -26,10 +27,11 @@ import java.io.IOException;
@@ -26,10 +27,11 @@ import java.io.IOException;
@Slf4j
public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper {
private static String [ ] SQL_KEYWORDS = { "master" , "truncate" , "insert" , "select"
private static final String [ ] SQL_KEYWORDS = { "master" , "truncate" , "insert" , "select"
, "delete" , "update" , "declare" , "alter" , "drop" , "sleep" } ;
// sql 替换字符
private static String REPLACE_STR = "" ;
private static final String REPLACE_STR = "" ;
/ * *
* @param request
@ -43,18 +45,22 @@ public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper {
@@ -43,18 +45,22 @@ public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper {
String [ ] values = super . getParameterValues ( name ) ;
if ( values ! = null ) {
int length = values . length ;
String [ ] escaps eValues = new String [ length ] ;
String [ ] escapeValues = new String [ length ] ;
for ( int i = 0 ; i < length ; i + + ) {
// 防xss攻击和过滤前后空格
escaps eValues [ i ] = HtmlUtil . filter ( values [ i ] ) . trim ( ) ;
// 防xss攻击和过滤html相关脚本
escapeValues [ i ] = HtmlUtil . filter ( values [ i ] ) . trim ( ) ;
// 防sql注入
escaps eValues [ i ] = cleanSqlKeyWords ( escaps eValues [ i ] ) ;
escapeValues [ i ] = cleanSqlKeyWords ( escapeValues [ i ] ) ;
}
return escaps eValues ;
return escapeValues ;
}
return super . getParameterValues ( name ) ;
}
public static void main ( String [ ] args ) {
System . out . println ( new HTMLFilterUtil ( ) . filter ( "<p>123</p>" ) . trim ( ) ) ;
}
private String cleanSqlKeyWords ( String value ) {
String paramValue = value ;
for ( String keyword : SQL_KEYWORDS ) {