settings.py 中有关 Django 电子邮件主机数据的安全问题

Security-concerns about Django email-host-data in settings.py

我已经按照 django 文档中的描述为我的 Gmail 帐户设置了电子邮件设置:

settings.py:

  EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
  EMAIL_HOST = 'smtp.gmail.com'
  EMAIL_USE_TLS = True
  EMAIL_PORT = 587
  EMAIL_HOST_USER = 'me@gmail.com'
  EMAIL_HOST_PASSWORD = 'password'

所以,也许我很担心这个,但我对将这种敏感数据写入我的 settings.py 文件时的安全性有一些疑问。

那么,是否有更安全的设置方式?

正确的做法是通过环境变量提供这样的敏感数据。您可以手动设置环境变量或通过 .env 文件。有许多 python 包用于从 env 文件设置环境变量 (like this)。然后使用 os.environ.

获取这些变量

比如你设置了EMAIL_HOST_USER环境变量,你可以在这样的设置中定义。

EMAIL_HOST_USER = os.environ.get('EMAIL_HOST_USER')