如何中和HTTP标头中的CRLF序列

时间:2014-05-07 10:07:50

标签: java veracode

我已经通过了这个链接。 [How to fix "Improper Neutralization of CRLF Sequences in HTTP Headers ('HTTP Response Splitting')"

但它没有给我解决方案。

我的代码也发出错误“HTTP标头中的CRLF序列中断不正确('HTTP响应拆分')CWE ID 113”。

我的代码段是::

Cookie newloginCookie = new Cookie("CMCLoginCookie", userName + ":" + password);
                                newloginCookie.setMaxAge(24 * 60 * 60 * 1000);
                                response.addCookie(newloginCookie);

在veracode扫描中,错误是给出最后一行。不知道该怎么办。

2 个答案:

答案 0 :(得分:1)

通过使用ESAPI,您可以解决最大的CWE问题。

基本上上面的问题是需要使用正则表达式或DefaultHTTPUtilities从用户输入中删除\ r \ n值。

答案 1 :(得分:0)

获得用户名和密码后,请尝试剥离所有“\ r”和“\ n”字符。使用类似Apache StringUtils的东西,这将是这样的:

String safeUserName = StringUtils.replaceEach(userName, new String[] {"\n", "\r"}, new String[] {"", ""});
String safePassword = StringUtils.replaceEach(password, new String[] {"\n", "\r"}, new String[] {"", ""});

然后使用安全字符串创建您的cookie。