在对我的代码执行Vera代码扫描之后,报告了一个漏洞,说明“HTTP头中的CRLF序列中断不正确('HTTP响应拆分 - CWE ID 113')”。
public void writeCookies() {
for (final Cookie cookie : cookies) {
super.addCookie(cookie);
}
报告的漏洞代码是super.addCookie(cookie)。为了解决这个问题,我在下面添加了代码
public void writeCookies() {
for (final Cookie cookie : cookies) {
cookie.setSecure(true);
ESAPI.httpUtilities().addCookie(((HttpServletResponse)super.getResponse()),cookie);
}
}
现在,Veracode扫描不会报告代码中的任何缺陷。但是,在运行应用程序时,我得到NoClassDefFoundError,如下所示
错误消息:javax.servlet.ServletException: java.lang.NoClassDefFoundError: org.apache.commons.fileupload.FileItemFactory错误代码:500 Target Servlet:com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor 错误堆栈:java.lang.NoClassDefFoundError: org.apache.commons.fileupload.FileItemFactory at java.lang.J9VMInternals.verifyImpl(Native Method)at java.lang.J9VMInternals.verify(J9VMInternals.java:94)at java.lang.J9VMInternals.initialize(J9VMInternals.java:171)at at java.lang.Class.forNameImpl(Native Method)at java.lang.Class.forName(Class.java:180)at org.owasp.esapi.util.ObjFactory.make(ObjFactory.java:74)at org.owasp.esapi.ESAPI.httpUtilities(ESAPI.java:121)
我的ESAPI.properties文件位于src / main / resources / ESAPI.properties位置ESAPI.properties文件的内容是
Encoder.AllowMultipleEncoding = false Encoder.AllowMixedEncoding = false Encoder.DefaultCodecList = HTMLEntityCodec,PercentCodec,JavaScriptCodec ESAPI.HTTPUtilities = org.owasp.esapi.reference.DefaultHTTPUtilities
请建议我如何修复此NoClassDefFoundError。我正在使用ESAPI 2.1.0.1。我怀疑配置ESAPI httputilities存在一些配置问题,我不确定ESAPI.properties中设置的上述属性是设置httputilities的正确方法。