2013-02-12 50 views
2

祕密包括下列警告不要設置一個祕密檢查Cookie完整性:使用存儲與機架::會議::該<a href="https://github.com/rack/rack/blob/master/lib/rack/session/cookie.rb#L91" rel="nofollow">source</a>從<code>Rack::Session::Cookie</code>餅乾池

提供給機架號的祕密選項::會議::餅乾。 這構成安全威脅。我們強烈建議您 提供保密,以防止該漏洞可能從精雕細琢 餅乾。

當使用Rack::Session::Cookie模塊,可以設置以這種方式一個祕密:「提供了簡單的基於Cookie的會話管理」

use Rack::Session::Cookie, secret: 'change_me' 

不過,我使用Rack::Session::Pool,這我假設我也需要提供一個祕密,但找不到相關示例。源代碼/文檔也不是很有幫助。有人知道這是否需要完成,以及如果這樣做會如何完成?

回答

2

如果你看一看this question and answerCookiePool之間的差異,指出只有「ID」(實際上是一個SID)保持在cookie中和其他一切保存在內存中。如果數據在內存中,則要求生成HMAC比,如果它已經存儲在cookie中低很多,如果你真的需要一個話,我想它已經留給了你。

我看了一下the sourcePool沒有尋找作爲選項通過的祕密,但Cookie呢。

我相信通過閱讀它生成一個唯一的SID每次Pool源,所以從您的數據沒有鍵/ ID的暴露。

作爲一個側面說明,如果你要選擇使用cookies,encrypt them。 renew`會話選項是TRUE;:

+0

'Pool'爲每個客戶端對新的會話,或者如果'生成新的SID。否則會使用相同的SID,直到會話過期(客戶端在到期後停止發送cookie或者會話在後端失效/丟棄)。 – 2014-09-12 02:12:50

相關問題