Лучший способ защитить паролем произвольные страницы с произвольными паролями на сайте Django? - PullRequest
1 голос
/ 29 августа 2011

У меня есть сайт Django, где люди могут загружать и делиться своими файлами.Каждый файл имеет свою страницу.Я хочу дать людям возможность назначить каждому файлу пароль, чтобы люди могли просматривать страницу этого файла, только если введут правильный пароль.Таким образом, в основном, пользователь перейдет на страницу файла, и если этот файл защищен паролем, пользователь увидит форму «пароля», а не файл, и как только пароль введен правильно, пользователь сможет увидеть файл.Также важно, чтобы пользователь вводил пароль только один раз.

Мой первый инстинкт - просто добавить поле "пароль" в модель файла, но я не уверен, что лучше всего разрешить пользователювведите пароль и, после ввода, дайте пользователю увидеть страницу этого файла (я подумал, что файл cookie будет лучше).

Какие-нибудь советы или лучшие практики здесь?Существуют ли какие-либо приложения для чего-либо подобного?

1 Ответ

2 голосов
/ 29 августа 2011

Если у вас есть пароль для файла, то разумно сохранить пароль хэш в модели файла. Я настоятельно рекомендую вам повторно использовать методы хеширования из django.contrib.auth, а не использовать собственные.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...