【问题标题】:Is there a validation in ESAPI library that can make sure the CWE-93 vulnerability does not come up in veracode SAST scan?ESAPI 库中是否有验证可以确保 CWE-93 漏洞不会出现在 veracode SAST 扫描中?
【发布时间】:2019-07-01 14:01:47
【问题描述】:

我在 Veracode 平台上对我的代码进行了 SAST 扫描,我在 Java 邮件功能中发现了这个漏洞,我用它来从我的应用程序发送邮件。以下是即将出现的漏洞 - CRLF 序列的不正确中和('CRLF Injection')(CWE ID 93)。

message.setSubject(subjectOfEmail);

我听说我们可以使用 ESAPI 库,但我找不到合适的验证函数。请有人帮我重新解决这个问题,这样它就不会再次出现在扫描中。

【问题讨论】:

    标签: java validation esapi veracode crlf-vulnerability


    【解决方案1】:

    查看 Veracode 帮助中心的此页面,该页面列出了将修复某些缺陷类的验证库:

    https://help.veracode.com/reader/DGHxSJy3Gn3gtuSIN2jkRQ/y52kZojXR27Y8XY51KtvvA

    有大量的 ESAPI 库可以修复 CWSE 93 缺陷,包括

    org.owasp.esapi.Encoder.encodeForHTML
    

    【讨论】:

      【解决方案2】:

      如果在这种情况下您要防止的只是标头注入问题(与 CWE ID 93 相关),请查看 ESAPI 的 org.owasp.esapi.StringUtilities 类。特别是静态方法stripControls() 可能正是您所需要的。使用 Encoder.encodeForHTML() 可能会比你想要的更多,因为它假设一个 HTML 上下文。 (当然,如果您担心在某些 Web 电子邮件客户端的主题标头上防止 XSS两次,但渲染不正确。)

      请记住,如果您使用StringUtilities.stripControls(),您的 Veracode 的 SAST 引擎可能仍会为 CWE 标记您的代码,因为我不确定它是否会将该类的方法识别为在这种特殊情况下删除污染标志。 (但您始终可以将其作为缓解评论提及。)

      【讨论】:

        【解决方案3】:

        使用 ESAPI 的 decodeForHTML() 方法,如下例所示。

        ESAPI.encoder().decodeForHTML(subjectOfEmail)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-01-11
          • 1970-01-01
          • 2021-05-18
          • 1970-01-01
          • 2022-01-01
          • 2013-03-07
          • 1970-01-01
          相关资源
          最近更新 更多