2017-08-02 82 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