Я пишу персональную программу в стиле вики на Python, которая хранит текстовые файлы в настраиваемом пользователем каталоге.
Программа должна иметь возможность принимать строку (например, foo
) от пользователя и создавать имя файла foo.txt
. Пользователь сможет создать файл только внутри каталога wiki, а косая черта создаст подкаталог (например, foo / bar
станет (path-to-wiki) /foo/bar.txt
).
Как лучше всего проверить, что ввод максимально безопасен? Чего мне нужно остерегаться? Я знаю несколько распространенных ошибок:
../
\ 0
Я понимаю, что ввод данных пользователем для имен файлов никогда не бывает безопасным на 100%, но программа будет запускаться только локально, и я просто хочу защитить себя от любых распространенных ошибок / сбоев.