2017-07-31 43 views
0

我正在使用燒瓶郵件從應用發送郵件。我正在做這樣的事情:如何在使用燒瓶郵件時保持郵件密碼安全

app = Flask(__name__) 
app.config.update(
    MAIL_SERVER='smtp.gmail.com', 
    MAIL_PORT=465, 
    MAIL_USE_SSL=True, 
    MAIL_USERNAME = '[email protected]', 
    MAIL_PASSWORD = 'yourpassword' 
    ) 
mail = Mail(app) 

但我不希望我的密碼在我的代碼中可見。例如,我想對它進行加密。我可以存儲在數據庫中,但我仍然沒有得到如何保持加密,因爲我需要解密它來設置MAIL_PASSWORD屬性。

回答

1

您的應用程序必須能夠訪問您的明文密碼,因此在服務器遭到入侵的情況下,加密它無用。

如果您想將它保存在公共場所(例如github上的代碼),然後您僅將密鑰提供給應用程序(例如,未跟蹤的應用程序),加密可能很有用(但我不建議它)文件或環境變量)。

既然你必須給你的應用程序一些祕密,我建議你簡單地把電子郵件密碼作爲祕密。

例如使用一個名爲local_settings.py你可以這樣做:

# local_settings.py 
MAIL_PASSWORD = 'mypassword' 

# app.py 
... 
import local_settings 

app = Flask(__name__) 
app.config.update(
    MAIL_SERVER='smtp.gmail.com', 
    MAIL_PORT=465, 
    MAIL_USE_SSL=True, 
    MAIL_USERNAME = '[email protected]', 
    MAIL_PASSWORD = local_settings.MAIL_PASSWORD 
    ) 
mail = Mail(app) 
+0

謝謝你的y我們的建議 – DzouSi

0

使用環境變量是一個不錯的選擇(郵件密碼,數據庫密碼,...)。例如:

import os 
app = Flask(__name__) 
app.config.update(
    MAIL_SERVER='smtp.gmail.com', 
    MAIL_PORT=465, 
    MAIL_USE_SSL=True, 
    MAIL_USERNAME = '[email protected]', 
    MAIL_PASSWORD = os.environ['MAIL_PASSWORD'] 
    ) 
mail = Mail(app) 

您可以設定值MAIL_PASSWORD環境變量每次運行腳本,使用

  1. 在Linux中:export MAIL_PASSWORD="{your_mail_password}"
  2. 在Windows中:set MAIL_PASSWORD="{your_mail_password}"

不宜用純文本文件存儲密碼

相關問題