Запретить пользователю скачивать файлы с Python? - PullRequest
0 голосов
/ 03 августа 2010

Я работаю над проектом, который требует загрузки, защищенной паролем, но я не совсем уверен, как это реализовать.Если целевой файл имеет определенное расширение (.exe, .mp3, .mp4 и т. Д.), Я хочу запросить у пользователя имя пользователя и пароль.Любые идеи по этому поводу?

Я использую Python 26 на Windows XP.

Ответы [ 2 ]

2 голосов
/ 03 августа 2010

Лучше всего это реализовать на уровне веб-сервера.

Если вы используете Apache, это можно сделать, поместив файлы, которые вы хотите защитить, в каталог с файлом htaccess, который требует аутентификации пользователя.

Затем внедрите HTTP Basic Auth в своем скрипте Python для загрузки файлов.Убедитесь, что вы используете соединение SSL;basic auth отправляет пароль пользователя по сети в открытом виде.

1 голос
/ 03 августа 2010

Использовать HTTP базовую аутентификацию (показано в URL, который я цитировал со стороны клиента):

  1. всякий раз, когда запрашивается "конфиденциальная" страница или файл, и нетЗаголовок авторизации является частью запроса (или он недействителен, см. Ниже), вместо этого верните код состояния 401 с заголовком WWW-Authenticate: Basic realm=XXXX (где XXXX - хэш URL-адреса, например, с MD5 или SHA1, чтобы сделать его по существу уникальнымдля каждого файла)
  2. пользователю необходимо будет ввести имя пользователя и пароль в своем браузере, который отправит их обратно на сервер, который вы реализуете, с помощью простого алгоритма, показанного по этому URL, а именно:

    импорт base64 base64string = base64.encodestring ('% s:% s'% (имя пользователя, пароль)) [: - 1] req.add_header ("Авторизация", "Basic% s"% base64string)

  3. когда в запросе присутствует заголовок Authorization, декодируйте строку base64, представленную после 'Basic ', и убедитесь, что у нее есть username:password, который вы хотите

Вы можете использовать более сложные аутентичныеКонечно, но это может привести к тому, что вы не начнете (или, как вы подозреваете), злоумышленники третьих сторон «подслушиваете» соединение пользователя (в этом случае вы все равно захотите использовать HTTPS, чтобы базовая аутентификация снова стала ОК; -.)

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