2011-09-01 83 views
1

我正在爲我的網站使用Rails 3。我有我的網站用戶阻止我的網站在瀏覽器中存儲cookie數據的情況。如果在瀏覽器中禁用cookie,則存儲數據

我有我的網站公共部分,用戶無需登錄即可訪問它。在那裏,我需要暫時在session []中存儲一些信息,直到接下來的幾個請求。

由於用戶爲我的網站禁用了Cookie,我選擇了:active_record_store作爲:session_store。即使這樣做之後,我無法從會話[]

Cart::Application.config.session_store :active_record_store, :key => '_cart_session', :domain => :all 

我能做些什麼來存儲這些案件開庭[]值成功存儲和檢索值。請幫忙。

回答

2

如果cookie被禁用,則不能使用會話,因爲會話ID是使用cookie傳輸的。

您可能嘗試以其他方式傳輸會話ID - 例如,在PHP中,每個表單和鏈接都會附加一個參數:PHPSESSIONID。您可以使用相同的技術,讓您的鏈接看起來像這樣的:

<a href="https://stackoverflow.com/users/1?session_id=12345"> 

Rails的will not allow you to use sessions without cookies,但我相信,寫它自己不會太辛苦。請務必考慮會話ID泄露的安全影響!

如果你有興趣在處理會議的PHP的方式,您可能希望看到PHP session documentation和兩個問題:How do PHP sessions work when cookies are disabled?do sessions work when cookies are disabled?

0

可以

  1. 爲每個用戶創建獨特代碼,修改各個環節,形成將其列入。

  2. 商店用戶數據在您的數據庫以及個性化的唯一代碼。

  3. 當用戶請求帶有該唯一代碼時,應用個性化。

您無法爲每個IP地址分配唯一的代碼,因爲許多用戶使用相同的IP地址,或者他們的IP地址可能會頻繁更改。

相關問題