Rails如何检查session_id cookie是否被客户端更改

时间:2011-01-20 10:23:52

标签: ruby-on-rails session session-state session-variables

在rails中,如果正确设置会话配置,它将生成session_id,然后在呈现网页后,seesion_id将使用cookie存储在客户端上;但是,如果客户端在向Web服务器发送请求之前更改了cookie值,那么rails如何检查更改?现在我找不到任何线索来检查更改,如果不检查并且更改的seesion_id存在于Web服务器会话存储中,则其他会话的数据将显示给当前浏览器用户。

如果有人明白这个问题,你可以帮我解释一下吗?提前谢谢你。

1 个答案:

答案 0 :(得分:2)

Cookie已加密签名。参见:

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

请注意,对cookie进行签名并不意味着加密它。用户可以通过一些摆弄来查看会话的内容,但不能在不破坏签名的情况下对其进行更改。

如果要隐藏用户的会话内容,请不要使用cookie商店。