2017-08-02 84 views
0

我有下面的构造为我定制的例外侵犯隐私漏洞问题

public CoException(String errorMessage) { 
    super(errorMessage); 
    CoDebugger.debugException(errorMessage, this); 
} 

静态代码分析工具(巩固)在这个代码部分标识漏洞问题。 Fortify给出的消息是 “CoException.java中的方法CoException()错误地处理了机密信息,这可能会危及用户的隐私并且通常是非法的。”

请让我知道问题在哪里以及如何解决。

+1

为什么在10分钟内基本上针对同一主题发布2个问题(强化隐私侵犯)? – Thomas

+2

你已经向我们展示了'CoException(String)'而不是'CoException()'方法,所以我怀疑任何人都可以真实地回答你的问题。 – JonK

+0

@Thomas在先前的问题有两个问题,但代码几乎相同,而这里的代码是不同的,我不想让这个问题太长 –

回答

2

该工具使得data flow analysis

  • 传入:String errorMessage - 什么错误信息可能包含攻击者感兴趣的信息?让我想想。 登录失败:user = admin pwd = 123456肯定是应该在内部保存的东西。

  • 传出:super(errorMessage);CoDebugger.debugException(errorMessage, this); - 这是什么的debugException方法?它是否直接向用户显示错误消息?这不应该发生。或者是写入日志文件的错误消息在某些情况下(例如,通过不正确的.htaccess配置)可以被用户访问。当然,这也不应该发生。

+0

CoDebugger.debugException(errorMessage,this)记录错误消息。这已被用在“catch”块中的应用程序中以记录异常。你认为它是一个漏洞问题吗?如果是,那么我们应该如何在捕捉异常时记录这些异常。 –

+1

只有满足以下两个条件才会出现问题:要保护的传入数据和可能被攻击者访问的传出数据。只要常量字符串被用作错误消息,日志记录不应该是一个问题(例如'抛出新的FooException(“Login failed”);'而不是抛出新的FooException(“Login failed:”+ name +“/” + pwd);')。 – howlger