使用请求对象记录伪造

时间:2014-12-10 09:41:17

标签: java logging log-forging

我正在处理代码的日志伪造问题:

log.error(“Request:”+ req.getRequestURL()+“raise”+ exception);

此元素的值(req.getRequestURL())在没有正确的情况下流经代码 已清理或验证,最终用于编写handleError

中的审计日志

我尝试删除\ n \ r \ n字符,但没有成功。

我经历了不同的网站搜索相同但没有找到有用的内容。 任何人都可以为此解释解决方案或解决它的小指南。

谢谢

1 个答案:

答案 0 :(得分:0)

使用ESAPI库来保护日志伪造攻击。参考 http://www.jtmelton.com/2010/09/21/preventing-log-forging-in-java/代码参考。

String clean = message.replace( '\n', '_' ).replace( '\r', '_' );
if ( ESAPI.securityConfiguration().getLogEncodingRequired() ) {
    clean = ESAPI.encoder().encodeForHTML(message);
    if (!message.equals(clean)) {
        clean += " (Encoded)";
    }
}