2009-07-13 6 views
0

多くのRailsアプリケーションは、セッションを保存するCookieStoreメソッドを使用します。この方法のセキュリティは設定/ environment.rbにはデフォルトで定義されたセッションの秘密鍵のセキュリティに主に依存しますRailsアプリケーションの場合、あなたのリポジトリにあなたのenvironment.rbファイルを保存することは安全ではないようです

config.action_controller.session = { 
    :session_key => '_some_name_session', 
    :secret  => 'long secret key' 
} 

ほとんどの人は自分自身が私たちのSCMレポでこのファイルを保つ含みます。コーヒーショップ(またはオープンなワイヤレス接続)で仕事をして自分のソースをコミットすると、誰かがこの秘密を嗅ぐことができ、アプリケーションの有効なセッションを作成し始めることができますか?人々は私がコミットしたファイルを盗聴できないのですか?これはかなりまともなセキュリティホールのようです。

答えて

4

httpsやSSH以外のプロトコルでコミットしている場合、私はそう信じています。あなたのリモートリポジトリサーバを制御している人が443ではなくポート80を使用している場合は、私は座って議論します。

+0

ok ... sshは、受信者がデータを復号化できるように、双方向暗号化機能を使用する必要があります。だから私はスニファもsshを介して送信されたデータを復号化することができると思いますか? – Tony

+0

それは非常に困難です。使用されるキーの強さにもよるが、一般にプライベートキーを持たずに、トラフィックを盗聴して解読しようとする時間は価値がない。 HTTPSは少し簡単ですが、一般的に誰かがあなたのセッションキーを欲しがっていれば、あなたのラップトップでチェックアウトしたリポジトリから取得しようとするか、サーバーを直接ハックしようとします。 – MattC

0

必ずしもそうではありません。 Subversionと話している場合は、HTTPSアドレスではなくHTTPSアドレスを使用することができます。ローカルマシンとバージョンコントロールサーバー間のすべての通信は安全です。

GitとMercurialが同じ能力を提供していないと、私は非常に驚くでしょう。

+0

GitとHgは両方ともHTTPS、またはSSHのような別の安全な方法での通信を可能にします。 – mipadi

関連する問題