在对我的代码执行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 java.lang.Class.forNameImpl(Native Method) at java.lang.Class.forName(Class.java:180) 在org.owasp.esapi.util.ObjFactory.make(ObjFactory.java:74) 在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 ......