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

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

```
File file = new File(fileName)

```

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

```
External Control of File Name or Path

```

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

Проблема, о которой сообщают, означает, что кто-то мог быть в состоянии изменить  `имя файла`  снаружи, например, вводом данных пользователем или изменяя конфигурационный файл. См. также [CWE-73: внешнее управление имени файла или пути](https://cwe.mitre.org/data/definitions/73.html).

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

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

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

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

```

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