Я получаю эту проблему со сканированием безопасности CheckMarx:
Метод
exec
в строке 69 элементаweb\src\main\java\abc\web\actions\HomeAction.java
получает пользовательский ввод для элементаCNF_KEY_COSN
. Затем значение этого элемента проходит через код без надлежащей очистки или проверки и в конечном итоге отображается пользователю в методеlogException
в строке 905 изweb\src\main\java\gov\abc\external\info\ServiceHelper.java
. Это может привести к атаке Cross-Site-Scripting.
Строка 69 из HomeAction.java
:
String cosn = (String) request.getParameter(CNF_KEY_CON);
Строка 905 в ServiceHelper.java
просто регистрирует ошибку:
private static void logException(InfoServiceException exception, String message) {
String newMessage = message + ": " + exception.getMessageForLogging();
try {
log.error(newMessage, exception);
} catch (Exception e) {
// fallback to console
System.out.println("error logging exception ->");
e.printStackTrace(System.out);
System.out.println("exception ->");
System.out.print(newMessage);
if (exception != null) exception.printStackTrace(System.out);
}
}
Изменен другой блок кода в HomeAction.java
на:
if(cosn!= null && cosn.matches("[0-9a-zA-Z_]+")) {
...
}
Но это не помогло. Как проверить/очистить/закодировать строку 69. Любая помощь очень ценится.
Спасибо
cosn
кlogException
(но вы говорите, что методlog.error
). Вы говорите, что добавили санитарию вHomeAction.java
, но мы не знаем, находится ли эта санитария в уязвимом потоке. - person baruchiro   schedule 08.05.2020