Tôi đang cố gắng loại bỏ các kết quả dương tính giả khỏi việc quét HP Fortify của một ứng dụng Java.HP Fortify - chú thích các tham số của phương thức
Phương pháp này gây ra một "Bảo mật Vi phạm" vấn đề (PrintWriter là một phản ứng servlet)
private void writeOutput(String passwordRules, PrintWriter out) {
...
out.print(passwordRules);
...
}
Điều này là do Fortify sau quy ước đặt tên, để quyết định rằng passwordRules
chứa dữ liệu cá nhân. Nhưng passwordRules
của tôi không phải là dữ liệu riêng tư - nó chứa các nội dung như "Tối thiểu 8 ký tự".
Tôi có thể làm cho lỗi biến mất bằng cách thay đổi tên của biến. Tuy nhiên về nguyên tắc tôi không muốn thỏa hiệp khả năng đọc mã của tôi, vì lợi ích của một máy phân tích mã nguồn.
tôi mong đợi này để sửa chữa nó:
private void writeOutput(@FortifyNotPassword String passwordRules, PrintWriter out) ...
Tuy nhiên có vẻ như chú thích không được viết cho các bối cảnh đó:
The annotation @FortifyNotPassword is disallowed for this location.
tôi đã cố gắng:
private void writeOutput(String passwordRules, PrintWriter out) {
...
@FortifyNotPassword String rules = passwordRules;
out.print(rules);
...
}
.. nhưng điều này không loại bỏ dương tính giả. (Và nó thỏa hiệp nguyên tắc của tôi không làm cho code ít dễ đọc hơn).
Tôi cũng đã thử ở trên với @FortifyNotPrivate, với cùng kết quả.
Vì vậy, cách thích hợp để làm điều này là gì?
Rất tiếc! Đã bỏ lỡ đoạn đó. Xin lỗi. –