|
|
@@ -0,0 +1,47 @@
|
|
|
+package com.bx.implatform.filter;
|
|
|
+
|
|
|
+import cn.hutool.extra.servlet.ServletUtil;
|
|
|
+import lombok.SneakyThrows;
|
|
|
+import org.apache.commons.lang3.ArrayUtils;
|
|
|
+import org.apache.commons.lang3.StringEscapeUtils;
|
|
|
+import org.springframework.web.util.HtmlUtils;
|
|
|
+
|
|
|
+import javax.servlet.ReadListener;
|
|
|
+import javax.servlet.ServletInputStream;
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
+import javax.servlet.http.HttpServletRequestWrapper;
|
|
|
+import java.io.BufferedReader;
|
|
|
+import java.io.ByteArrayInputStream;
|
|
|
+import java.io.IOException;
|
|
|
+import java.io.InputStreamReader;
|
|
|
+
|
|
|
+public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper {
|
|
|
+
|
|
|
+ public XssHttpServletRequestWrapper(HttpServletRequest request) {
|
|
|
+ super(request);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String getQueryString() {
|
|
|
+ return StringEscapeUtils.escapeHtml4(super.getQueryString());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String getParameter(String name) {
|
|
|
+ return StringEscapeUtils.escapeHtml4(super.getParameter(name));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String[] getParameterValues(String name) {
|
|
|
+ String[] values = super.getParameterValues(name);
|
|
|
+ if (ArrayUtils.isEmpty(values)) {
|
|
|
+ return values;
|
|
|
+ }
|
|
|
+ int length = values.length;
|
|
|
+ String[] escapeValues = new String[length];
|
|
|
+ for (int i = 0; i < length; i++) {
|
|
|
+ escapeValues[i] = StringEscapeUtils.escapeHtml4(values[i]);
|
|
|
+ }
|
|
|
+ return escapeValues;
|
|
|
+ }
|
|
|
+}
|