最近客户安全管理组扫描已交付的程序,发现程序存在xss漏洞,于是要求修复。修复的建议是将请求的所有url和参数做过滤。于是有同事在增加了一个过滤器,这个过滤器继承了HttpServletRequestWrapper类,代码如下:
import java.net.URLDecoder; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; import org.apache.commons.lang3.StringEscapeUtils; public class XSSRequestWrapper extends HttpServletRequestWrapper { public XSSRequestWrapper(HttpServletRequest servletRequest) { super(servletRequest); } public String[] getParameterValues(String parameter) { String[] values = super.getParameterValues(parameter); if (values == null) { return null; } int count = values.length; String[] encodedValues = new String[count]; for (int i = 0; i < count; i++) { encodedValues[i] = stripXSS(values[i]); } return encodedValues; } public String getRequestURI() { String uri = super.getRequestURI(); try { uri = URLDecoder.decode(uri, "UTF-8"); } catch (Exception e) { } return stripXSS(uri); } public String getParameter(String parameter) { String value = super.getParameter(parameter); return stripXSS(value); } public String getHeader(String name) { String value = super.getHeader(name); return stripXSS(value); } private String stripXSS(String value) { if (value != null) { value = StringEscapeUtils.escapeHtml3(value); } return value; } }
在这个类中,引用了org.apache.commons.lang3.StringEscapeUtils,使用了StringEscapeUtils类的public static final String escapeHtml3(String input)方法对请求中的参数做过滤。
Struts的方法在收到这个前台页面发送来请求时,处理请求。其中,取得参数时,发现经过ajax传递到后台参数中的中文都被转成中文了。后来在后台的方法中获取参数后再调用StringEscapeUtils的另一个方法转码就无问题了。
String json = request.getParameter("jsonStr"); json = StringEscapeUtils.unescapeHtml3(json);
相关推荐
org.apache.commons.lang.StringEscapeUtils.class org.apache.commons.lang.StringUtils.class org.apache.commons.lang.SystemUtils.class org.apache.commons.lang.UnhandledException.class org.apache....
org.apache.commons.lang.StringEscapeUtils.class org.apache.commons.lang.StringUtils.class org.apache.commons.lang.SystemUtils.class org.apache.commons.lang.UnhandledException.class org.apache....
解决json数据中,返回的数据格式中带有反...如下所示{\"Count\":\"3\",\"ErrorString\":\"\",\"Success\":true,\"URL\":\"http:\\\/\\\/172.16.80.65:8080\\\/LoginSSO.aspx?UserCode=wubg&Type=WorkItem\",\"UserId\":
org.apache.commons.lang.StringEscapeUtils.class org.apache.commons.lang.StringUtils.class org.apache.commons.lang.SystemUtils.class org.apache.commons.lang.UnhandledException.class org.apache.commons....
Apache Commons 是一个由 Apache...使用Apache Commons时,注意阅读官方文档,了解每个类和方法的功能,以确保正确和有效地利用这些工具。同时,遵循良好的编程实践,如适当的错误处理和资源管理,可以避免潜在的问题。
Maven坐标:org.apache.commons:commons-lang3:3.4; 标签:apache、commons、lang3、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,...
这一组API的所有包名都以org.apache.commons.lang开头,共有如下8个包: org.apache.commons.lang org.apache.commons.lang.builder org.apache.commons.lang.enum org.apache.commons.lang.enums org.apache....
在"commons-lang3-3.4.jar"这个压缩包中,我们关注的是Apache Commons Lang 3.4版本,它是该项目的一个重要里程碑。此库包含了各种各样的功能,帮助开发者处理日常编程任务,提高代码效率和可读性。 `...
commons-lang3-3.4.rar,包括org.apache.commons.lang.StringEscapeUtils类。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...
第一步:引入Jsoup和lang和lang3的依赖: ...lang和lang3这两个包里有转换所需的工具类 ...import org.apache.commons.lang.StringEscapeUtils; import org.apache.commons.lang3.StringUtils; import org.jsoup.Jsoup; im
commons-lang可以将html转以后的...String convStr = StringEscapeUtils.unescapeHtml(str);//apache的jar包:commons-lang-*.jar可以将html转换的符号转换过来(网上抄来的) Sysout(convStr);//“!@#¥%……&——+”
在本案例中,我们关注的是"commons-lang3-3.8.1.jar",这是Apache Commons Lang项目的版本3.8.1的归档文件。这个JAR文件包含了Lang项目的所有类和资源,便于开发者在自己的项目中导入和使用。 Apache Commons Lang...
这个`commons-lang3-3.1_jar`是Apache Commons Lang项目的一个版本,它提供了大量的类和实用方法,以增强Java语言的功能。在Java开发中,这个库非常常见,能够帮助开发者更高效、便捷地处理各种编程任务。 `...
Apache Commons Lang是Java开发的一个非常重要的工具库,它提供了大量实用的工具类,极大地扩展了Java标准库中关于字符串操作的功能。在这个"commons-lang-2.6.jar"中,我们找到了许多对字符串处理非常有用的类和...
这个压缩包"消除斜杠commons-lang3-3.12.0工具类.zip"显然包含了一个名为"commons-lang3-3.12.0"的库,这是一个非常流行的Apache Commons Lang库的版本,它提供了大量的实用工具类,用于增强Java的内置String类和...
Apache Commons Lang 包含了一个名为`StringEscapeUtils`的类,它是处理字符串转义的关键。在这个3.1版本中,`StringEscapeUtils`提供了一个`unescapeHtml()`方法,可以将HTML编码的字符串解码为原始的非转义格式。...
这个压缩包"commons-lang3-3.12.0-bin.zip"包含了Apache Commons Lang的3.12.0版本,这是一个非常重要的版本更新,提供了许多新特性和性能改进。 Apache Commons Lang 3.12.0主要包含以下核心知识点: 1. **基本...
在标题中提到的"commons-lang3-3.0-beta-bin.zip"是一个包含Apache Commons Lang 3.0 beta版本的压缩包,这个版本是该项目的一个早期预发布版本,可能包含了新的特性和改进,但同时也可能存在一些未解决的问题。...
Apache Commons Lang 是一个Java语言工具包,包含了大量用于处理日常编程任务的实用工具类。这个压缩包"commons-lang-2.1.tar.gz"是Apache Commons Lang项目的一个具体版本,即2.1版本。Apache Commons Lang提供了对...