2017-07-31 8 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

ありがとう私たちのアドバイス – 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) 

あなたがLinuxでは

  1. を使用して、MAIL_PASSWORD環境変数のためのスクリプトを実行するたびに値を設定することができます。export MAIL_PASSWORD="{your_mail_password}"
  2. Windowsの場合:set MAIL_PASSWORD="{your_mail_password}"

使うべきではありませんがパスワードを保存するファイルのプレーンテキスト

関連する問題