2016-05-18 6 views
0

だから私はレール4.2のアプリを展開し、私はそれは私がSECRET_KEY_BASEという名前の環境変数にキーを設定したいの生産にsecret_key_baseキーsecrets.ymlに直接production_key_baseキーを追加する際にセキュリティ上の欠陥がありますか?

のconfig/secrets.yml

# Do not keep production secrets in the repository, 
# instead read values from the environment. 
production: 
    secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> 

を設定する必要が実現しています。さて、私はこのファイルをgit repoで共有していないとすれば、ちょうどsecret_key_baseをsecrets.ymlファイルに直接設定することに何らかのセキュリティ上の欠陥がありますか?どのようにしてこのファイルにアクセスして鍵を入手することができますか?

答えて

2

攻撃領域が増加するため、直接追加することはあまり安全ではありません。つまり、他の人があなたのレールサーバーからデータを取得できる方法が増えているということです。

これを直接追加すると、誰かがあなたのレールサーバのファイルシステムを読むことができる必要があります。これは、あなたのファイルシステムの内容を見ることができる何らかの種類のディレクトリトラバーサル攻撃によるものかもしれません。

これをENVに追加し、そのようにしてsecrets.ymlを使用するだけでは、railsプロセスを実行しているユーザーのENVを読み取ることができなければなりません。通常、これは、ルートへのリクエストを処理するためのプロセスを起動するためのアクセスを許可するrootまたは別の特権ユーザーアカウントのいずれかです。これを行うには、ユーザープロセスを完全に引き継ぐ必要がありますが、これは一般的には困難です。

+0

ありがとうございました – Rob

関連する問題