我在我的项目上运行了 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);任何建议,如何解决问题?
3 回答
慕慕森
TA贡献1856条经验 获得超17个赞
selNhid 缺少 URL 编码。
String redirectURL = "/nhwhoods?action=membersNH&selNhid=" + URLEncoder.encode(selNhid, StandardCharsets.UTF_8);
以上假设您正在使用 UTF-8。现在讨厌的内容将被解除为 %XX 字节。
扬帆大鱼
TA贡献1799条经验 获得超9个赞
这可以使用 ESAPI 2.1.0.1 库修复:
import org.owasp.esapi.ESAPI;
ESAPI.httpUtilities().setHeader(response, param, value);
ESAPI.httpUtilities().addCookie(response, cookie);
慕斯709654
TA贡献1840条经验 获得超5个赞
就像错误消息所暗示的那样,从 redirectURL 参数中删除 CRLF 序列怎么样?
一个简单的.replaceAll("[\\r\\n]+", "")
应该做到这一点。
添加回答
举报
0/150
提交
取消