为了账号安全,请及时绑定邮箱和手机立即绑定

HTTP 标头中 CRLF 序列的不正确中和

HTTP 标头中 CRLF 序列的不正确中和

繁星coding 2022-10-07 16:37:26
我在我的项目上运行了 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 字节。


查看完整回答
反对 回复 2022-10-07
?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

这可以使用 ESAPI 2.1.0.1 库修复:


import org.owasp.esapi.ESAPI;


ESAPI.httpUtilities().setHeader(response, param, value);

ESAPI.httpUtilities().addCookie(response, cookie);


查看完整回答
反对 回复 2022-10-07
?
慕斯709654

TA贡献1840条经验 获得超5个赞

就像错误消息所暗示的那样,从 redirectURL 参数中删除 CRLF 序列怎么样?

一个简单的.replaceAll("[\\r\\n]+", "")应该做到这一点。


查看完整回答
反对 回复 2022-10-07
  • 3 回答
  • 0 关注
  • 105 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信