2011-07-14 60 views
3

我爲我的rails應用程序使用插件authlogic(rails 2)。 數據如何通過authlogic保存在會話中?這足夠安全嗎?authlogic如何保存會話?

例如,如果我在其中保存了session[:group_id] = 1,它會保存在客戶端PC上的cookie中?如果是的話,我如何改變會話設置,以便將它保存在服務器端而不是客戶端?

您是否有任何提示,我如何以安全的方式保存數據,這些提示可以在不使用cookie的情況下存活多個請求?

回答

2

您可以選擇在哪裏會話存儲在您的應用程序:

  • 的CookieStore - 在客戶機上存儲的一切。
  • DRBStore - 將數據存儲在DRb客戶端上。
  • MemCacheStore - 將數據存儲在MemCache中。
  • ActiveRecordStore - 使用ActiveRecord將數據存儲在數據庫中。

config/environment.rb文件:

# Set to one of [:active_record_store, :drb_store, :mem_cache_store, :cookie_store] 
config.action_controller.session_store = :active_record_store 

使用會話http://guides.rubyonrails.org/security.html#sessions

+0

謝謝你的幫助時,也有對安全的公報指南。我幾個月前就做過了,而且沒有成功。但現在我清除了緩存和cookie,現在它可以工作。謝謝。 – wabbiti

+1

這是錯的。 Authlogic使用它自己的cookie。 – maletor

+0

據我可以看到https://github.com/binarylogic/authlogic/blob/master/lib/authlogic/session/session.rb,它使用'controller.session'這是由Rails處理。我懷疑他們會重塑整個會話存儲機制。 – RocketR