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')
我已经按照 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')