[hyddd的Fortify SCA分析Java代码记录][Data Flow]System Information Leak
2009-02-25 10:57 hyddd 阅读(5075) 评论(1) 编辑 收藏 举报会触发这个警报的代码有下面几种:
//Demo1
try{
//
}
catch(Exception e){
log.error(ex.getLocalizedMessage(),ex);
//
}
//Demo2
try{
//
}
catch(Exception e){
System.out.println("xxx error:" + e.getMessage());
}
//
try{
//
}
catch(Exception e){
log.error(ex.getLocalizedMessage(),ex);
//
}
//Demo2
try{
//
}
catch(Exception e){
System.out.println("xxx error:" + e.getMessage());
}
//
上面的代码都一个共同的特点,就是他们把Exception里面的一些详细信息,输出到了log/Console上面,Fortify这里建议不要把这些详细信息输出,以免被攻击者作为攻击/入侵的参考资料,我们可以输出一些自己定义的信息去代替输出Exception里面的详细信息。
以上是Fortify的建议,个人认为,如果是后端程序,直接输出Exception的详细信息到log也无妨,因为可以方便开发人员发现问题,但是这里有个隐患是:万一服务器被入侵的,Log的有可能被入侵者修改或者盗取,从而获得更多的信息。如果是前端的程序,Exception可以考虑直接发回服务器,也可以把Log内容加密再记录下来,但返回给用户看的信息,建议还是参考Fortify的建议,输出自定义的信息代替输出Exception的详细信息。
另外[Semantic]System Information Leak这里面描述的问题和本文要说明的问题比较类似,可以一起参考。
作者:hyddd
出处:http://www.cnblogs.com/hyddd/
本文版权归作者所有,欢迎转载,演绎或用于商业目的,但是必须说明本文出处(包含链接)。