我在项目上运行了Veracode扫描,它在HTTP响应拆分下给了我CWE ID 113问题。我尝试通过那里的建议来解决该问题,但没有成功。例如
try
{
String selNhid = req.getParameter("selNhid");
String redirectURL = "/nhwhoods?action=membersNH&selNhid="+selNhid;
res.sendRedirect(req.getContextPath() + redirectURL);
}
catch (Exception e)
{
e.printStackTrace();
}
以上代码来自文件之一。并报告在行显示错误
res.sendRedirect(req.getContextPath() + redirectURL);
任何建议,如何解决该问题?
答案 0 :(得分:0)
可以使用带有以下内容的ESAPI 2.1.0.1库修复此问题:
导入org.owasp.esapi.ESAPI;
ESAPI.httpUtilities()。setHeader(response,param,value); ESAPI.httpUtilities()。addCookie(response,cookie);
答案 1 :(得分:0)
如何从重定向URL参数中删除CRLF序列,如错误消息所示?
一个简单的.replaceAll("[\\r\\n]+", "")
应该可以做到。
答案 2 :(得分:0)
selNhid缺少URL编码。
String redirectURL = "/nhwhoods?action=membersNH&selNhid="
+ URLEncoder.encode(selNhid, StandardCharsets.UTF_8);
以上假设您正在使用UTF-8。现在,令人讨厌的内容将以%XX个字节的形式撤防。