安全漏洞 - veracode报告 - crlf注入
我得到了我的javaEE应用程序的veracode报告。它在任何日志记录(使用log4j)上都有一个缺陷,所以我将添加到所有这些中,但是veracode不断将它们报告为安全漏洞。StringEscapeUtils.escapeJava(log)
这是一个正确的解决方案吗?我还能做些什么?
这是报告信息:标题:日志的输出中和不正确
说明:函数调用可能导致日志伪造攻击。将未经清理的用户提供的数据写入日志文件后,攻击者可以伪造日志条目或将恶意内容注入日志文件。损坏的日志文件可用于覆盖攻击者的踪迹,或用作对日志查看或处理实用程序的攻击的传递机制。例如,如果 Web 管理员使用基于浏览器的实用程序来查看日志,则可能会受到跨站点脚本攻击。
建议:尽可能避免在日志文件中直接嵌入用户输入。使用安全日志记录机制(如 OWASP ESAPI 记录器)清理用户提供的数据,用于构造日志条目,该机制将自动删除意外的回车符和换行符,并且可以配置为对非字母数字数据使用 HTML 实体编码。仅在绝对必要时编写自定义黑名单代码。始终验证用户提供的输入,以确保其符合预期的格式,并在可能的情况下使用集中式数据验证例程。
他们建议使用ESAPI,但这是一个非常大的项目,所以我需要最简单的解决方案,这就是为什么我尝试使用String.escape 'StringEscapeUtils.escapeJava(log)'
先进!