Quellcode durchsuchen

GagaXssServletFilter -> TscXssServletFilter, GagaServletRequestWrapper
-> TscServletRequestWrapper 로 변경

gagamel vor 5 Jahren
Ursprung
Commit
5da0e06953

+ 51 - 0
src/main/java/com/style24/core/support/filter/TscServletRequestWrapper.java

@@ -0,0 +1,51 @@
+package com.style24.core.support.filter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletRequestWrapper;
+
+import org.apache.commons.lang3.StringUtils;
+
+public class TscServletRequestWrapper extends HttpServletRequestWrapper {
+
+	public TscServletRequestWrapper(HttpServletRequest request) {
+		super(request);
+	}
+
+	public String[] getParameterValues(String name) {
+		String[] values = super.getParameterValues(name);
+		if (values == null) {
+			return null;
+		} else {
+			List<String> removedValues = new ArrayList();
+			String[] var4 = values;
+			int var5 = values.length;
+
+			for (int var6 = 0; var6 < var5; ++var6) {
+				String value = var4[var6];
+				if (StringUtils.isBlank(value)) {
+					removedValues.add(value);
+				} else {
+					removedValues.add(this.convertParameter(value));
+				}
+			}
+
+			return (String[])removedValues.toArray(new String[removedValues.size()]);
+		}
+	}
+
+	public String getParameter(String name) {
+		String value = super.getParameter(name);
+		return StringUtils.isBlank(value) ? value : this.convertParameter(value);
+	}
+
+	private String convertParameter(String value) {
+		value = value.replaceAll("<", "&lt;");
+		value = value.replaceAll(">", "&gt;");
+		value = value.replaceAll("script", "");
+		return value;
+	}
+
+}

+ 21 - 0
src/main/java/com/style24/core/support/filter/TscXssServletFilter.java

@@ -0,0 +1,21 @@
+package com.style24.core.support.filter;
+
+import java.io.IOException;
+
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.annotation.WebFilter;
+import javax.servlet.http.HttpServletRequest;
+
+@WebFilter({"/xssServletFilter"})
+public class TscXssServletFilter implements Filter {
+
+	@Override
+	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
+		chain.doFilter(new TscServletRequestWrapper((HttpServletRequest)request), response);
+	}
+
+}