我的自定义异常具有以下构造函数
public CoException(String errorMessage) {
super(errorMessage);
CoDebugger.debugException(errorMessage, this);
}
静态代码分析器工具(fortify)可以识别此部分代码中的漏洞问题。
强化给出的信息是
“ CoException.java中的CoException()方法处理不正确的机密信息会损害用户的隐私,而且通常是非法的。”
请让我知道问题出在哪里以及如何解决。
最佳答案
该工具生成一个data flow analysis:
传入:String errorMessage
-哪些错误消息可能包含攻击者感兴趣的信息?让我想想。登录失败:user = admin pwd = 123456当然应该在内部保留。
输出:super(errorMessage);
和CoDebugger.debugException(errorMessage, this);
-debugException方法是什么?它是否直接向用户显示错误消息?那不应该发生。或者将错误消息写入日志文件,在某些情况下(例如通过错误的.htaccess配置),用户可以访问该错误消息。当然,那也不应该发生。