我試圖消除來自HP Fortify掃描的Java應用程序的誤報。HP Fortify - 註釋方法參數
這種方法會導致「侵犯隱私權」的問題(在PrintWriter的是一個servlet響應)
private void writeOutput(String passwordRules, PrintWriter out) {
...
out.print(passwordRules);
...
}
這是因爲Fortify的如下命名約定,以決定passwordRules
包含私人數據。但我的passwordRules
不是私人數據 - 它包含「最少8個字符」等內容。
我可以通過更改變量的名稱使錯誤消失。然而,原則上我不想爲了源代碼分析器的利益而損害我的代碼的可讀性。
我預計修復它:
private void writeOutput(@FortifyNotPassword String passwordRules, PrintWriter out) ...
但是似乎註釋沒有爲這方面的書面:
The annotation @FortifyNotPassword is disallowed for this location.
我想:
private void writeOutput(String passwordRules, PrintWriter out) {
...
@FortifyNotPassword String rules = passwordRules;
out.print(rules);
...
}
..但這並沒有消除假陽性。 (這會影響我不讓代碼不易讀的原則)。
我也嘗試了以上與@FortifyNotPrivate,具有相同的結果。
那麼有什麼正確的方法來做到這一點?
糟糕!錯過了那一段。道歉。 –