@Boldy

Как не хранить пароль в открытом виде в Django?

Вот так сейчас выглядят мои настройки БД.
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mydb',
        'USER': 'myuser',
        'PASSWORD': 'mypassword',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }
}

То есть, если злоумышленник получает доступ к моему ssh, то влезть в БД ему не составит труда. Можно ли как-нибудь зашифровать вышеуказанные данные?
  • Вопрос задан
  • 3637 просмотров
Решения вопроса 1
svfat
@svfat
☺Нужен VPS? Два месяца бесплатно. Смотри профиль☺
Это нормальный вариант для хранения пароля в базе, и не только в Django но и в других CMF\CMF. Основная проблема тут даже не доступ по ssh, а системы хранения версий. Для иллюстрации, поищите на GitHub'e "password".

Способы защиты такие:
- использовать local_settings.py для хранения пароля, добавить его в '.gitignore"
- не использовать root пароль для доступа к БД
- использовать сложные пароль
- перенести сервис ssh на не дефолтный порт
- использовать аутентификацию по ключу вместо пароль
- закрыть возможность входа для root по ssh
- не пользоваться FTP, использовать вместо этого SFTP
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
crazyzubr
@crazyzubr
Python backend-developer
Нужно защищать ssh. БД можно взломать и не зная пароля, если есть привилегии у пользователя.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы