ActionMailerパスワードによるセキュリティ
-
24-09-2019 - |
質問
思ったなテーマについてSMTPユーザー名とパスワードActionMailer、実際の開発/生産)configファイルとは何ですか?いい店で暗号化されている場合は、最低限、除外からの私のMercurial押.
現在、私を取り除くだけで、パスワードからソースファイルを行う前にプッシュがありになってしまったんマは私が使っている.:)
もう大切に保管してくださのデータベースとして他のユーザーであるにすでに格納されていると暗号化されたパスワード)を取得すのでprogramatically?
解決
アプリケーション構成ファイルを使用する リポジトリに保存されていないもの 機密情報を保存するため。私がやった方法は次のとおりです。
を追加
app_config.yml
あなたの中でconfig
ディレクトリ。その内容は次のようになります。smtp_password: kl240jvfslkr32rKgjlk some_other_password: 34hg9r0j0g402jg and_so_on: lkn$@gJkjgsFLK4gaj
追加
preinitializer.rb
あなたの中でconfig
次の内容のディレクトリ:require 'yaml' APP_CONFIG = YAML.load(File.read(RAILS_ROOT + "/config/app_config.yml"))
の値をパスワードに置き換えます。
APP_CONFIG
変数、次のように:smtp_password = kl240jvfslkr32rKgjlk # old version smtp_password = APP_CONFIG['smtp_password'] # new version
含めないように注意してください app_config.yml
ただし、そこに含まれる内容のサンプルを示すために、チェックインされるサンプル ファイルを作成することもできます。アプリケーションをデプロイするときは、次のことを確認してください。 app_config.yml
サーバーに保存されます。標準の Capistrano デプロイメントを使用している場合は、ファイルを共有フォルダーに置き、デプロイメント タスクを更新して、現在のリリースのディレクトリにそのファイルへのシンボリック リンクを作成します。
他のヒント
ジミーズの答えは完璧な(+1)、また、Githubにはお勧めします。gitignoreファイルのためのすべての言語でのレールは こちらの ご注意このconfig/*.ymlないようにconfig/ymlファイルのrespository。います。
使用カピストラーノへのお願いこの際展開:設定と同じ方法で行うことやるべきことだと思いデータベース。
task :my_silly_task do
sendgrid_password = Capistrano::CLI.password_prompt("Sendgrid password: ")
require 'yaml'
spec = {... whatever yaml you need -- probably what Jimmy said...}
run "mkdir -p #{shared_path}/config"
put(spec.to_yaml, "#{shared_path}/config/mailer_config.yml")
end