Внешнее управление Имени файла или Пути проблема безопасности CRLF

У меня есть код

File file = new File(fileName)

Этот имя файла я готовлюсь от других деталей. Но я добираюсь

External Control of File Name or Path

испортитесь, когда я представил свой код инструменту просмотра безопасности 'Кодекс Веры'. Может кто-то, пожалуйста, помогать мне, как решить это.

1
nl ja de
Это - то, что я делаю с именем файла "имени файла" = "/" + certificateId + "" + docTypeLongName + "_" + IDGenerator.getFileId() + extn;
добавлено автор user1782009, источник
Никакой extn не тип файла. Для, например: Если я загружу документ "Upload.doc" тогда, то имя файла будет похоже:/58743364 package_20131295643666-850442.docx Так extn здесь будет ".docx"
добавлено автор user1782009, источник
Не могли бы Вы отправить содержание "имени файла"?
добавлено автор Guido, источник
Я предполагаю, что имя файла - имя файла UNIX
добавлено автор Guido, источник
могло случиться так, что расширение имени файла указывает на приложение сторонних производителей (т.е. это зарегистрировано, чтобы работать с приложением сторонних производителей), и потому что вы теперь хотите работать с ним вне этого приложения сторонних производителей
добавлено автор Guido, источник
Одна вещь, о которой я являюсь courious: как это связано с CRLF / новая строка?
добавлено автор Andreas Fester, источник

1 ответы

Проблема, о которой сообщают, означает, что кто-то мог быть в состоянии изменить имя файла снаружи, например, вводом данных пользователем или изменяя конфигурационный файл. См. также CWE-73: внешнее управление имени файла или пути.

Это приводит к недостатку безопасности, где нападавший мог получить доступ к любым файлам в вашей файловой системе и или прочитать файлы или даже переписать файлы кроме намеченных.

Необходимо проверить, каково источник различных частей вашего имя файла . Например, предположите, что пользователь в состоянии обеспечить extn через вашу сеть UI. При использовании ввод данных пользователем в своем заявлении без дальнейшей проверки, пользователь мог бы быть в состоянии получить доступ к файлам, которые он не должен:

User input: extn="/../etc/passwd"

Resulting fileName: "/certificateId docTypeLongName_FileId/../etc/passwd"

Чтобы решить это, можно использовать <сильную> проверку , чтобы удостовериться, что вход не содержит определенные последовательности как .. , или можно использовать белые списки (если возможный входной диапазон ограничивается) удостоверяться, что только известные ценности представлены.

1
добавлено
Сделайте я должен проверить только .. , чтобы удалить этот недостаток?
добавлено автор user1782009, источник
Это могло бы быть достаточно в вашем особом случае, но, пожалуйста, проверьте cwe.mitre.org/data/definitions/73.html. Фаза "Внедрения" дает хороший обзор стратегий реализации. Следует иметь в виду, что нападавшие творческие...
добавлено автор Andreas Fester, источник
pro.jvm
pro.jvm
3 503 участник(ов)

Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш сайт: projvm.com projvm.ru Наш канал: @proJVM Вакансии: @jvmjobs Конфы: @jvmconf

Java & Co
Java & Co
2 370 участник(ов)

Можно обсуждать с матом и без всё, что касается жабы, вплоть до холиваров. НЕ ИМЕЕТ ОТНОШЕНИЯ К САЙТУ JAVARUSH.RU ПРАВИЛА - https://t.me/javarush/75723 Вакансии сюда - https://telegram.me/joinchat/B7IzvUCnfo6d8t3yIxKguQ По вопросам - @thedude

learn.java
learn.java
1 888 участник(ов)

Чат для начинающих и не только Статистика: https://combot.org/chat/-1001083535868 Основной чат - @jvmchat

Кибербезопасность АСУ ТП: RUSCADASEC Community
Кибербезопасность АСУ ТП: RUSCADASEC Community
1 389 участник(ов)

Группа открытого независимого сообщества специалистов по кибербезопасности АСУ ТП / RUSCADASEC для интерактивного обмена информацией по теме Подробнее: www.ruscadasec.ru Наш канал для основных новостей и материалов @RUSCADASECnews

secinfosec
secinfosec
697 участник(ов)

Эта группа про информационную безопасность. Целевая аудитория: пентестеры, ресерчеры, ибшники всех мастей. Реклама, криминал, политика и прочая чушь карается родовыми проклятьями. Митапы: https://www.youtube.com/channel/UCagEjp1FmxY9gsVxi6_d4SQ

Linux Security
Linux Security
652 участник(ов)

Данная группа принципиально про безопасность и в частности про безопасность Linux. Прочие темы просим обсуждать в профильных чатах.

Chat Security / ИБач чат
Chat Security / ИБач чат
601 участник(ов)

Чат канала @ibach Обсуждение всего, что касается информационной безопасности Правила: https://t.me/chat_security/65

Java Underground
Java Underground
169 участник(ов)

https://vk.com/javatutorial

Javanese Questions
Javanese Questions
109 участник(ов)

Чат предназначен для обмена знаниями строго в формате в вопрос-ответ. Тема — Java, Kotlin и Android. Вопрос должен быть предварительно прогуглен, понятно и грамотно сформулирован, помечен хэштегами. Ответ — тем более. Куски кода размером в несколько строк можно писать прямо здесь, для больших кусков кода стоит использовать http://gist.github.com/, http://pastebin.com/, https://codeshare.io/ или любой аналогичный сервис. В некоторых случаях можно прикреплять скриншоты. Стикеры и гифки запрещены. Дополнять и уточнять вопросы и ответы — редактированием исходного сообщения. Обсуждения должны приводить к редактированию вопроса/ответа и удаляться. По хештегам можно искать существующие вопросы и овтеты: #вопрос #ответ #git #generics #java #server #awt #javafx #swing #kotlin #anko #tornadofx #ktor #android #recyclerView #performance #arch #network #permissions #storage #async