2014-01-07 2 views
1

Я столкнулся со следующей проблемой:Как создавать каталоги в безопасном режиме в питоне

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

Начальная копия выполняется путем создания папки с именем пользователя и помещением туда файлов. Пользователи могут свободно изменять имена пользователей, поэтому, если кто-то меняет свое имя пользователя на что-то неприятное, сервер принадлежит или принадлежит

Мне нужно использовать имена пользователей для имен папок, потому что скрипт, выполняющий синхронизацию, использует папку имя пользователя для некоторых метаданных.

Итак, есть ли способ избежать имени пользователя и убедиться, что все создано под главной папкой?

+2

Как правило, этот материал обрабатывается разрешениями на уровне операционной системы ... Вы используете скрипт как корень? – mgilson

+2

Лучший способ предотвратить проблемы - использовать «realpath», я не уверен, как это делается в Python/Bash, но в php и 'basepath' в perl можно использовать для проверки того, что обход каталога не происходит – nrathaus

+0

@mgilson Я не знаю разрешений, с которыми будет вызываться скрипт, поэтому я хотел бы сделать его как надежным, как я могу – ndp

ответ

1

Как nrathaus предложил можно использовать os.path.normpath, чтобы получить «нормализованное» путь и проверить по вопросам безопасности

Смежные вопросы