我使用的是静态分析工具,发现错误和报告下面的代码警告encodeRedirectURL产生警告
response.sendRedirect(response.encodeRedirectURL(redirectToXXX));
警告说:
此代码直接写入一个HTTP参数的HTTP头文件,其中 允许HTTP响应分裂漏洞。
但是,当我这样做是这样的:
redirectToXXX= java.net.URLEncoder.encode(redirectToXXX.toString(),"ISO-8859-1");
response.sendRedirect(response.encodeRedirectURL(redirectToXXX));
警告消失。
我不明白的是,encodeRedirectURL
是应该编码的网址,如果有必要,所以它为什么会产生一个警告然后,并删除编码与URLEncoder.encode警告。
redirectToXXX从哪里来?你还用什么工具? – Carlo
redirectToXXX包含来自HttpServletRequest的一些参数,我使用FindBugs进行分析。 – comatose
参数中有CRLF。删除它们并尝试。 – Dandy