5

我已经通过这个链接。[如何修复“HTTP 标头中 CRLF 序列的不正确中和('HTTP 响应拆分')”

但这并没有给我解决方案。

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

我的代码片段是::

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

在验证码扫描中,最后一行给出了错误。不知道该怎么做。

4

2 回答 2

2

通过使用 ESAPI,您可以修复最大 CWE 问题。

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

于 2015-11-04T10:27:09.353 回答
1

一旦你得到用户名和密码,试着去掉所有的“\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。

于 2015-02-24T22:02:56.503 回答