疯狂的狮子Li
2024-10-21 8d8d76364b7b979782de6c6c25f9fcf8786c2121
fix 修复 xss过滤器 未过滤url参数问题
已修改1个文件
30 ■■■■■ 文件已修改
ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/filter/XssHttpServletRequestWrapper.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/filter/XssHttpServletRequestWrapper.java
@@ -14,6 +14,7 @@
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Map;
/**
 * XSS过滤处理
@@ -29,6 +30,33 @@
    }
    @Override
    public String getParameter(String name) {
        String value = super.getParameter(name);
        if (value != null) {
            return HtmlUtil.cleanHtmlTag(value).trim();
        }
        return value;
    }
    @Override
    public Map<String, String[]> getParameterMap() {
        Map<String, String[]> valueMap = super.getParameterMap();
        for (Map.Entry<String, String[]> entry : valueMap.entrySet()) {
            String[] values = entry.getValue();
            if (values != null) {
                int length = values.length;
                String[] escapseValues = new String[length];
                for (int i = 0; i < length; i++) {
                    // 防xss攻击和过滤前后空格
                    escapseValues[i] = HtmlUtil.cleanHtmlTag(values[i]).trim();
                }
                valueMap.put(entry.getKey(), escapseValues);
            }
        }
        return valueMap;
    }
    @Override
    public String[] getParameterValues(String name) {
        String[] values = super.getParameterValues(name);
        if (values != null) {
@@ -40,7 +68,7 @@
            }
            return escapseValues;
        }
        return super.getParameterValues(name);
        return values;
    }
    @Override