2016-10-20 7 views
3

私はサインアップ検証のための電子メールを送信するWebアプリケーションを構築しています。私はhttps://github.com/RGBboy/express-mailerを使用します。私はコードに電子メールパスワードを表示して、アプリケーションがホストされているサーバー(Heroku、AWSなど)にプッシュすることが安全かどうかを知りたかったのです。そうでない場合は、パスワードを「隠す」ためにどのような代替方法を使用する必要がありますか?リモートサーバーコードセキュリティのパスワード

+0

ことの一つは、ワードプレスで例えば、設定を使用することです。 sample.phpに空白/デフォルト値を設定し、config.phpに "production"の値を保存してから無視するファイルにそのファイルを追加するl ist(.gitignore私は思いますか?私は知らないよ。私はgitを使用しません。) – Mike

答えて

0

秘密をバージョン管理に保存しないでください。

私が個人的に最も気に入っている方法の1つは、運用環境でのアプリケーションの環境変数として秘密を設定することです。 Heroku私はこれをサポートすると思います。これは、例えばRailsがとるアプローチでもあります。 Dev/testの "秘密"(貴重なものは実際の資格情報ではありません)はもちろんVCSに保存することができます。

0

また、ソースコードのユーザー資格情報を暗号化し、ソースコードから解読することもできます。

1

平文の秘密/資格情報をバージョン管理下に保存することは、通常、悪い習慣とみなされます。その通りにsecurity issues

通常、これらの情報は環境変数として設定されています。 Herokuはpretty straightforward way of doing this configurationです。 Web管理者を使用するか、コマンドラインから設定することができます。

開発設定のように、.envファイルを使用してロードでき、その値が実行中のコードに公開されている可能性があります。 [express-mailer][2]はノードアプリケーションなので、dotenvnode-env-fileのようなnpmパッケージを使用することをお勧めします。私は個人的にはもっと簡単だと感じているdotenvを好んでいます。

.envファイルの使用については、this articleもチェックしてください。基本的な考え方は、.gitignore(または同等のもの)に.envファイルを無視させることです。これにより、秘密の資格情報がバージョンコントロールに導入されないようにします。そして、.envファイルでどのデータを宣言する必要があるかを開発者に示すために.env.sampleファイルを設定します。

例:私が見てきた

.env

[email protected] 
PASSWORD=AahUbf796 
S3_TOKEN=ASVNS7843NCA87SDVNBRT9 

.env.sample

EMAIL=<email to access the account> 
PASSWORD=<secret password> 
S3_TOKEN=<s3 token for application foobar> 
関連する問題