2017-07-31 18 views
0

我在我的網站上有一個表單,一旦它被提交,它就發送一封電子郵件到郵箱中。在Django中獲得我的電子郵件密碼的更好的保護

我的問題是,這樣做的,我硬編碼的電子郵件地址和密碼,我在我的settings.py這樣的:

EMAIL_HOST_USER = '[email protected]' 
EMAIL_HOST_PASSWORD = 'mypassword' 

,但我覺得它沒有固定好,所以我試着找到一種方法,使其不在我的settings.py中硬編碼。基於我如何保存我的私鑰,我嘗試以下的事情:

with open('/Users/myapp/email.txt') as f: 
    EMAIL_HOST_USER = f.read().strip() 

with open('/Users/myapp/email_password.txt') as f: 
    EMAIL_HOST_PASSWORD = f.read().strip() 

但沒有奏效。它引發了一個SMTP錯誤:「用戶名和密碼不被接受。」

關於如何更好地保護我的密碼的任何想法?

+1

https://stackoverflow.com/documentation/django/942/settings/3580/using-environment-variables-to-manage-settings-across-servers#t=20170731135538​​1466534 – Sayse

+0

https://stackoverflow.com/documentation/django/942/settings/8734/hiding-secret-data-using-a-json-file#t = 201707311355493139207 – Sayse

回答

1

您應該使用環境變量,然後在你的設置,如閱讀:

import os 
EMAIL_HOST_USER = os.environment.get('EMAIL_HOST_USER') 

然後你就可以保持數值超出你的回購。

環境需要對運行Django的進程有效。

+0

它似乎很好用!你認爲它比從txt文件中讀取更安全嗎?這樣我也可以使用這種技術來存儲我的密鑰 –

+0

不一定更安全,但更易於管理。 –

相關問題