Django пароль безопасности send_mail - PullRequest
0 голосов
/ 11 апреля 2019

Я пытаюсь отправить электронное письмо из приложения, однако в моих настройках он просит указать EMAIL_HOST_PASSWORD, и, хотя он работает, как вы можете защитить его от просмотра на GitHub или при его развертывании?

settings.py:  
EMAIL_HOST='smtp.gmail.com'
EMAIL_HOST_USER='lala@gmail.com'
EMAIL_HOST_PASSWORD=''
EMAIL_PORT=587
EMAIL_USE_TLS=True
EMAIL_BACKEND='django.core.mail.backends.smtp.EmailBackend'

Views.py:
def contact(request):
    if request.method=='POST':
        message=request.POST['message']

        send_mail('Contact Form', 
        message,
        settings.EMAIL_HOST_USER,
        ['lala@gmail.com'],
        fail_silently=False)
    return render(request, 'first_app/contact.html')

Ответы [ 2 ]

0 голосов
/ 12 апреля 2019

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

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

Вы можете взглянуть на Как изменить разрешения для папки и всех ее подпапок и файлов за один шаг в Linux?

Надеюсь, это поможет

0 голосов
/ 11 апреля 2019

На вашем локальном компьютере поместите ваши конфиденциальные данные в переменные окружения.Если вы еще не использовали, проверьте эту ссылку: Учебное пособие по переменным среды

Если кто-то клонирует ваш проект, он, конечно, не будет иметь доступа к переменным вашей среды, поэтому в README добавьте информацию дляПользователи, как правильно настроить проект, набрав свои собственные почтовые учетные данные.Сокрытие SECRET_KEY также очень важно.

От развертывания зависит, где вы хотите развернуть проект Django.Если у вас есть ваш облачный компьютер, вы можете подключиться к нему через SSH и установить там переменные среды.Я полагаю, что многие службы делают развертывание еще проще, и во время настройки вам задают переменные ENV, которые вы хотите установить.Проверьте Heroku: Heroku

...