Как исправить уязвимость Fortify Path Manipulation (проверка входных данных и представление, поток данных) - PullRequest
1 голос
/ 24 апреля 2019

У меня возникает уязвимость, связанная с манипулированием путем, для создания файла с новым ключевым словом

Я пытался санировать путь перед передачей его объекту File, но проблема сохраняется.Пробовал также эту ссылку: https://www.securecoding.cert.org/confluence/display/java/FIO00-J.+Do+not+operate+on+files+in+shared+directories

public static String sanitizePath(String sUnsanitized) throws URISyntaxException, EncodingException {

   String sSanitized = SAPI.encoder().canonicalize(sUnsanitized);
   return sSanitized;

}


//// the main method code snippet /////

String sSanitizedPath = Utils.sanitizePath(file.getOriginalFilename());

-- fortify scan detects problem here ..in below line --

File filePath = new File(AppInitializer.UPLOAD_LOCATION, sSanitizedPath);

String canonicalPath = filePath.getCanonicalPath();
FileOutputStream fileOutputStream = new FileOutputStream(canonicalPath);

После santizePath я думал, что сканирование не будет выбрано, уязвим, но это так.

1 Ответ

0 голосов
/ 26 апреля 2019

Эта переменная "sUnsanitized" происходит от ввода пользователя?Возможно, это ваша настоящая проблема.

Никогда не доверяйте вводу пользователя, это правило номер один для развития.

...