2014-01-13 3 views
0

Я написал простой веб-сервис Django, который предоставляет приложение iOS с информацией JSON, содержащей ссылки для скачивания. Я не против информации JSON, чтобы быть четким текстом, но когда пользователь входит в систему, я бы хотел, чтобы он зашел в систему со своим именем пользователя и паролем, тогда он, вероятно, получит какой-то ключ для будущих запросов, которые, как я понимаю, могут быть обнюхиваемым. Для этого первого взаимодействия, как я могу защитить пароль и имя пользователя от четкого текста и понюхать?Вход в Django веб-сервис с использованием безопасного подключения

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

Я хотел бы использовать какое-то шифрование, которое я могу легко сделать в iOS, а не расшифровывать на своем сервере django. у кого есть предложение о том, как это сделать?

ответ

0

Если вы хотите зашифровать связь между вашим сервером django и клиентом, вы можете использовать безопасный HTTP, а не простой старый HTTP. Это делается за пределами django и настраивается на уровне веб-сервера. Например, если ваше приложение django запускается сервером WSGI, например, gunicorn или uWSGI, который в свою очередь обрабатывается nginx (это обычная настройка), вы должны настроить ваш nginx-сервер для приема только защищенных HTTP-запросов и перенаправления любого стандартного HTTP-запроса до https. Таким образом, вы можете гарантировать, что все, что клиент отправляет на сервер, зашифровывается в браузере перед отправкой. Подобная настройка выполняется с Apache, хотя я лично никогда не использовал Apache с django.

+0

Я думаю, что создание Gunicorn и nginx + покупка SSL и поддержка хоста это немного для моих нужд, мой веб-сервис полностью открыт, его не такой высокий риск, просто отправка пароля простым текстом - это плохая привычка , особенно если мои пользователи могут использовать один и тот же пароль для других целей. –

+0

Я не вижу другого жизнеспособного варианта. Любое шифрование, которое вы добавите на стороне клиента, будет видно любому, кто имитирует. Я не знаю других решений, кроме SSL. Я видел, что GoDaddy продает SSL-сертификаты за 6 $. Вероятно, они не будут проверены так быстро, но для ваших простых потребностей этого может быть достаточно. – elynch

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