Покрытие синопсиса по-прежнему возвращает путь к файловой системе, имя файла или манипуляции с URI в Java, несмотря на внесение рекомендуемого исправления.
Хотя эти два следующих вопроса дают объяснение того, что делать, они не могут исправить предупреждение, создаваемое инструментом.
Проблемы покрытия для манипуляций с путем файловой системы, именем файла или URI в Java
Как исправить «уязвимость манипулирования путем» в немного Java Код?
Чтобы внести ясность, прежде чем кто-то закроет этот дубликат, эти два ответа не решают проблему полностью.
Вот код, который имел первоначально последовало предупреждение, которое по-прежнему содержит предупреждение о закрытии пути к файловой системе, имени файла или манипуляции с URI.
Исходный код:
public String deleteFiles(List filesToDelete){
filesToDelete.forEach(file -> {
logger.info("Deleting file " + file);
Path path = Paths.get(file).normalize();
new File(path).delete();
});
}
Исправление кода, которое по-прежнему возвращает предупреждение о покрытии:
private static boolean doesFilenameTryPatternTraversal(String filename) {
return Pattern.compile("\\.\\.|\\|/").matcher(filename).find();
}
private void deleteFiles(List filesToDelete) {
filesToDelete.forEach(file -> {
logger.info("Deleting file {}", file);
if (doesFilenameTryPatternTraversal(file)) {
throw new RuntimeException(
"filename: '" + file + "' attempting to access a file outside of expected directory.");
}
Path canonicalPath = basePath.resolve(Paths.get(file).toAbsolutePath().normalize());
if (canonicalPath.startsWith(basePath.toString())) {
try {
Files.delete(canonicalPath);
} catch (IOException e) {
throw new RuntimeException("Could not delete file '" + file + "'.", e);
}
} else {
throw new SecurityException("File '" + file + "' is outside the allowed directory");
}
});
}
Подробнее здесь: https://stackoverflow.com/questions/763 ... ulation-in
Покрытие синопсиса по-прежнему возвращает путь к файловой системе, имя файла или манипуляцию с URI в Java, несмотря на в ⇐ JAVA
Программисты JAVA общаются здесь
1733249223
Anonymous
Покрытие синопсиса по-прежнему возвращает путь к файловой системе, имя файла или манипуляции с URI в Java, несмотря на внесение рекомендуемого исправления.
Хотя эти два следующих вопроса дают объяснение того, что делать, они не могут исправить предупреждение, создаваемое инструментом.
Проблемы покрытия для манипуляций с путем файловой системы, именем файла или URI в Java
Как исправить «уязвимость манипулирования путем» в немного Java Код?
Чтобы внести ясность, прежде чем кто-то закроет этот дубликат, эти два ответа не решают проблему полностью.
Вот код, который имел первоначально последовало предупреждение, которое по-прежнему содержит предупреждение о закрытии пути к файловой системе, имени файла или манипуляции с URI.
Исходный код:
public String deleteFiles(List filesToDelete){
filesToDelete.forEach(file -> {
logger.info("Deleting file " + file);
Path path = Paths.get(file).normalize();
new File(path).delete();
});
}
Исправление кода, которое по-прежнему возвращает предупреждение о покрытии:
private static boolean doesFilenameTryPatternTraversal(String filename) {
return Pattern.compile("\\.\\.|\\|/").matcher(filename).find();
}
private void deleteFiles(List filesToDelete) {
filesToDelete.forEach(file -> {
logger.info("Deleting file {}", file);
if (doesFilenameTryPatternTraversal(file)) {
throw new RuntimeException(
"filename: '" + file + "' attempting to access a file outside of expected directory.");
}
Path canonicalPath = basePath.resolve(Paths.get(file).toAbsolutePath().normalize());
if (canonicalPath.startsWith(basePath.toString())) {
try {
Files.delete(canonicalPath);
} catch (IOException e) {
throw new RuntimeException("Could not delete file '" + file + "'.", e);
}
} else {
throw new SecurityException("File '" + file + "' is outside the allowed directory");
}
});
}
Подробнее здесь: [url]https://stackoverflow.com/questions/76392546/synopsis-coverity-still-return-filesystem-path-filename-or-uri-manipulation-in[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия