77import org .jsoup .safety .Safelist ;
88
99import java .util .Arrays ;
10- import java .util .Enumeration ;
1110import java .util .Optional ;
1211
1312@ Slf4j
@@ -29,44 +28,29 @@ public String[] getParameterValues(String parameter) {
2928 @ Override
3029 public String getParameter (String parameter ) {
3130 String value = super .getParameter (parameter );
32- log .info ("Original parameter [{}]: {}" , parameter , value );
33-
3431 String sanitizedValue = Optional .ofNullable (value )
3532 .map (this ::sanitize )
3633 .orElse (null );
37-
34+ log . info ( "Original parameter [{}]: {}" , parameter , value );
3835 log .info ("Sanitized parameter [{}]: {}" , parameter , sanitizedValue );
3936 return sanitizedValue ;
4037 }
4138
4239 @ Override
4340 public String getHeader (String name ) {
44- String originalValue = super .getHeader (name );
45- String sanitizedValue = sanitize (originalValue );
46- log .debug ("Original header [{}]: {}" , name , originalValue );
47- log .debug ("Sanitized header [{}]: {}" , name , sanitizedValue );
48- return sanitizedValue ;
49- }
50-
51- @ Override
52- public Enumeration <String > getHeaderNames () {
53- return new Enumeration <String >() {
54- private Enumeration <String > enum1 = XssRequestWrapper .super .getHeaderNames ();
55- @ Override
56- public boolean hasMoreElements () {
57- return enum1 .hasMoreElements ();
58- }
59- @ Override
60- public String nextElement () {
61- return sanitize (enum1 .nextElement ());
62- }
63- };
41+ return Optional .ofNullable (super .getHeader (name ))
42+ .map (this ::sanitize )
43+ .orElse (null );
6444 }
6545
6646
67- private String sanitize (String value ) {
68- return Optional .ofNullable (value )
69- .map (str -> Jsoup .clean (str , Safelist .basic ()))
70- .orElse (null );
47+ public String sanitize (String value ) {
48+ if (value == null ) {
49+ return null ;
50+ }
51+ if (value .toLowerCase ().startsWith ("javascript:" )) {
52+ return "" ;
53+ }
54+ return Jsoup .clean (value , Safelist .basic ());
7155 }
7256}
0 commit comments