Ich versuche, falsch positive Ergebnisse aus einem HP Fortify-Scan einer Java-Anwendung zu entfernen.HP Fortify - Methoden zur Kommentierung der Methode
Diese Methode führt zu einem „Datenschutzverletzung“ Problem (der Printwriter ist ein Servlet-Antwort)
private void writeOutput(String passwordRules, PrintWriter out) {
...
out.print(passwordRules);
...
}
Dies liegt daran, Fortify Namenskonventionen folgt, zu entscheiden, dass passwordRules
private Daten enthält. Aber meine passwordRules
ist keine private Daten - es enthält Sachen wie "Minimum 8 Zeichen".
Ich kann den Fehler verschwinden lassen, indem ich den Namen der Variablen ändere. Im Prinzip möchte ich jedoch die Lesbarkeit meines Codes zugunsten eines Quellcodeanalysators nicht beeinträchtigen.
erwartete ich das es zu beheben:
private void writeOutput(@FortifyNotPassword String passwordRules, PrintWriter out) ...
Allerdings scheint es, die Anmerkung für diesen Kontext nicht geschrieben:
The annotation @FortifyNotPassword is disallowed for this location.
Ich habe versucht:
private void writeOutput(String passwordRules, PrintWriter out) {
...
@FortifyNotPassword String rules = passwordRules;
out.print(rules);
...
}
.. Aber das beseitigt nicht das falsch-positive. (Und es kompromittiert meinen Grundsatz, Code nicht weniger lesbar zu machen).
Ich habe auch das oben mit @FortifyNotPrivate, mit den gleichen Ergebnissen versucht.
Also, was ist der richtige Weg, dies zu tun?
Hoppla! Habe diesen Absatz verpasst. Entschuldigung. –