Próbuję wyeliminować fałszywe alarmy ze skanowania HP Fortify aplikacji Java.HP Fortify - parametry metody opisowej
Metoda ta powoduje „Naruszenie prywatności” problem (PrintWriter jest odpowiedzią servlet)
private void writeOutput(String passwordRules, PrintWriter out) {
...
out.print(passwordRules);
...
}
To dlatego Fortify następujące konwencje nazewnictwa, aby zdecydować, które passwordRules
zawiera prywatne dane. Ale mój passwordRules
nie jest prywatnymi danymi - zawiera rzeczy typu "Minimum 8 znaków".
Mogę sprawić, że błąd zniknie, zmieniając nazwę zmiennej. Zasadniczo jednak nie chcę zagrażać czytelności mojego kodu, z korzyścią dla analizatora kodu źródłowego.
Spodziewałem się tego, aby to naprawić:
private void writeOutput(@FortifyNotPassword String passwordRules, PrintWriter out) ...
wydaje się jednak, że adnotacja nie jest napisane w tym kontekście:
The annotation @FortifyNotPassword is disallowed for this location.
Próbowałem:
private void writeOutput(String passwordRules, PrintWriter out) {
...
@FortifyNotPassword String rules = passwordRules;
out.print(rules);
...
}
.. ale to nie usuwa fałszywego pozytywu. (I to narusza moją zasadę, że nie czyni kodu mniej czytelnym).
Próbowałem również powyższego z @FortifyNotPrivate, z tymi samymi wynikami.
Co jest właściwym sposobem na zrobienie tego?
Ups! Nieodebrany ten akapit. Przeprosiny. –