在HttpHeader中修复CRLF序列时遇到NoClassDefFoundError

时间:2018-05-10 15:38:10

标签: http security cookies owasp esapi

在对我的代码执行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的正确方法。

0 个答案:

没有答案