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