ESAPI 库中是否有验证可以确保 CWE-93 漏洞不会出现在 Veracode SAST

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

message.setSubject(subjectOfEmail);

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


大话西游666
浏览 138回答 3
3回答

慕莱坞森

在 Veracode 帮助中心查看此页面,其中列出了将修复某些缺陷类的验证库:https://help.veracode.com/reader/DGHxSJy3Gn3gtuSIN2jkRQ/y52kZojXR27Y8XY51KtvvA有大量的 ESAPI 库可以修复 CWSE 93 漏洞,包括org.owasp.esapi.Encoder.encodeForHTML

茅侃侃

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

侃侃无极

如果在这种情况下您要防止的只是标头注入问题(这是与 CWE ID 93 相关的问题),那么请查看 ESAPI 的org.owasp.esapi.StringUtilities类。特别是静态方法stripControls()可能正是您所需要的。使用Encoder.encodeForHTML()可能会编码比你想要的更多的东西,因为它假定一个 HTML 上下文。(当然,如果您担心在某些 Web 电子邮件客户端的主题标头上防止 XSS,您可能想要这样做。通常这些客户端应该已经内置了这种保护,所以如果您对其进行编码,它最终可能会被编码两次但渲染不正确。)请记住,如果您使用StringUtilities.stripControls(),您的 Veracode 的 SAST 引擎可能仍会为 CWE 标记您的代码,因为我不确定它是否将该类的方法识别为在这种特殊情况下删除了污点标志。(但您始终可以将其作为缓解评论提及。)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java