我在Veracode平台上对我的代码进行了SAST扫描,我在Java邮件功能中发现了这个漏洞,我正在使用这个漏洞从我的应用程序发送邮件。以下是即将出现的漏洞-- CRLF序列(“CRLF注入”) (CWE ID 93)的不正确中和。
message.setSubject(subjectOfEmail);
我听说我们可以使用ESAPI库,但是我找不到合适的验证函数。请有人帮我重新调解这个问题,这样就不会再出现在扫描中了。
发布于 2019-07-02 17:53:30
请查看Veracode帮助中心上的页面,该页面列出了将纠正某些缺陷类的验证库:
https://help.veracode.com/reader/DGHxSJy3Gn3gtuSIN2jkRQ/y52kZojXR27Y8XY51KtvvA
有一系列ESAPI库将弥补CWSE 93的缺陷,包括
org.owasp.esapi.Encoder.encodeForHTML
发布于 2019-07-06 01:51:43
如果在本例中所要防止的只是头注入问题(这是CWE 93所涉及的问题),那么请查看ESAPI的org.owasp.esapi.StringUtilities类。特别地,静态方法stripControls()
可能正是您所需要的。使用Encoder.encodeForHTML()
可能会比您想要的代码更多,因为它假定了一个HTML。(当然,如果您担心防止XSS出现在某些web电子邮件客户端的主题标题上,您可能希望这样做。通常,这些客户端应该已经内置了这种保护,所以如果您对其进行编码,最终可能会被编码两次,而不能正确地呈现。)
请记住,如果使用StringUtilities.stripControls()
,Veracode的SAST引擎可能仍然会为CWE标记代码,因为我不确定在这种情况下它是否会将该类的方法识别为移除污染标志。(但你总是可以把它作为缓解性的评论。)
发布于 2019-07-10 05:09:10
使用ESAPI的decodeForHTML()方法,如下所示。
ESAPI.encoder().decodeForHTML(subjectOfEmail)
https://stackoverflow.com/questions/56837048
复制相似问题