2011-01-20 67 views
0

在rails中,如果正確設置會話配置,則會生成session_id,然後在呈現web頁面後,seesion_id將使用cookie存儲在客戶端上;但是,如果在向Web服務器發送請求之前,客戶端更改了cookie值,那麼rails如何檢查更改?現在我找不到任何線索來檢查更改,如果它不檢查並且更改的seesion_id存在於Web服務器會話存儲中,則會爲當前瀏覽器用戶顯示其他會話的數據。Rails如何檢查session_id cookie是否被客戶端更改

如果有人明確的問題,你可以給我解釋一下嗎?先謝謝你。

回答

2

該cookie是加密簽名的。請參閱:

https://github.com/rails/rails/blob/master/actionpack/lib/action_dispatch/middleware/cookies.rb

注意,在簽訂的cookie並不意味着同樣的事情對其進行加密。用戶可以通過一些小竅門看到會話內容,但不能在不破壞簽名的情況下對其進行修改。

如果您想隱藏用戶的會話內容,請勿使用cookie存儲。

+0

抱歉,您發送的鏈接不能被我訪問。是的,簽名與加密不同。但我只能看到由瀏覽器上的rails創建的session_id cookie,rails如何僅依賴於由客戶端發送的session_id來標識它是正確且一致的session_id?我還不清楚,你能提供更多的意見嗎?謝謝你。 – ywenbo 2011-01-20 10:37:10

相關問題