2011-01-20 91 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

相关问题