我正在使用Fortify SCA来查找我的应用程序中的安全问题(作为大学的作业).我遇到了一些我无法摆脱的“日志伪造”问题.
基本上,我记录一些来自用户从Web界面输入的值:
logger.warn("current id not valid - " + bean.getRecordId()));
而Fortify则将此报告作为日志伪造问题,因为getRecordId()返回一个用户输入.
我已经跟随了这个article,我用空格取代了“新线”,但仍然有报道
logger.warn("current id not valid - " + Util.replaceNewLine(bean.getRecordId()));
解决方法
我实际上是你用来解决日志注入问题的文章的作者.希望这是有帮助的.
Vitaly对于Fortify是正确的. Fortify需要建立一个“自定义规则”.
它可能是一个数据流清理规则.一个基本的例子可以在这里找到:http://www.cigital.com/newsletter/2009-11-tips.php.如果你拥有Fortify,你的产品文档中应该有一个自定义规则写作指南.
我不知道你会使用什么污点,但它会看起来像“-LOG_FORGING”.当数据通过您的实用程序方法时,您将基本上编写一条规则来删除日志伪造“污点”. Fortify会假设通过该数据的任何数据现在可以安全地写入日志,并且不会导致日志伪造.