2009-07-13 55 views
0

許多Rails應用程序使用CookieStore存儲會話的方法。這種方法的安全性主要取決於其被默認到config/environment.rb定義會話密鑰的安全性:對於Rails應用程序,將您的environment.rb文件保存在存儲庫中似乎不安全

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

大多數人包括我自己保留這個文件在我們的供應鏈回購。這是否意味着如果我在咖啡店(或任何開放的無線連接)做某些工作並確認我的來源,有人可以嗅探這個祕密並可能開始爲我的應用程序創建有效會話?人們不能嗅探我提交的文件嗎?這看起來像一個相當不錯的安全漏洞。

回答

4

如果您通過https或SSH以外的協議進行提交,那麼我相信是的。如果控制遠程存儲庫服務器的人使用端口80而不是443,我會坐下來與他們討論。

+0

好的......我猜ssh必須使用雙向加密功能,以便接收者可以解密數據。所以我想嗅探器也能夠解密通過ssh傳輸的數據? – Tony 2009-07-13 18:58:51

+0

這將是非常困難的。根據所使用的密鑰強度,通常不值得該人花時間去嗅探並嘗試解密流量,尤其是沒有私鑰的情況下。 HTTPS稍微容易破解,但通常情況下,如果有人想要你的會話密鑰,那麼他們要麼試圖從你的筆記本電腦上檢出你的存儲庫,要麼直接破解你的服務器。 – MattC 2009-07-13 19:02:46

0

不一定。如果您正在與Subversion交談,您可以選擇使用HTTPS地址而不是HTTP地址,並且本地計算機和版本控制服務器之間的所有通信都將是安全的。

如果Git和Mercurial沒有提供相同的功能,我會非常驚訝。

相關問題