【问题标题】:Improper Neutralization of CRLF Sequences in HTTP HeadersHTTP 标头中 CRLF 序列的不正确中和
【发布时间】:2019-09-06 10:05:04
【问题描述】:

我在我的项目上运行了 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);

任何建议,如何解决问题?

【问题讨论】:

  • 您尝试了哪些失败的原因?

标签: java xss veracode


【解决方案1】:

这可以使用 ESAPI 2.1.0.1 库修复:

import org.owasp.esapi.ESAPI;

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

【讨论】:

    【解决方案2】:

    如错误消息所示,从 redirectURL 参数中删除 CRLF 序列怎么样?

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

    【讨论】:

      【解决方案3】:

      selNhid 缺少 URL 编码。

      String redirectURL = "/nhwhoods?action=membersNH&selNhid="
              + URLEncoder.encode(selNhid, StandardCharsets.UTF_8);
      

      以上假设您使用的是 UTF-8。现在讨厌的内容将被解除为 %XX 个字节。

      【讨论】:

        猜你喜欢
        • 2015-09-16
        • 2014-03-26
        • 2014-06-24
        • 2019-09-06
        • 1970-01-01
        • 1970-01-01
        • 2015-06-24
        • 2013-05-17
        • 2018-12-08
        相关资源
        最近更新 更多