Ruby on rails Rails如何检查客户端是否更改了会话id cookie

Ruby on rails Rails如何检查客户端是否更改了会话id cookie,ruby-on-rails,session,session-state,session-variables,Ruby On Rails,Session,Session State,Session Variables,在rails中,如果正确设置了会话配置,它将生成会话id,然后在呈现网页后,seision id将与cookie一起存储在客户端上;但是,如果客户端在向web服务器发送请求之前更改了cookie值,rails如何检查更改?现在我找不到rails检查更改的任何线索,如果它不检查,并且更改的seision\u id存在于web服务器会话存储中,其他会话的数据将为当前浏览器用户显示 如果有人对这个问题很清楚,你能给我解释一下吗?提前谢谢。cookie是加密签名的。见: 请注意,对cookie进行签名

在rails中,如果正确设置了会话配置,它将生成会话id,然后在呈现网页后,seision id将与cookie一起存储在客户端上;但是,如果客户端在向web服务器发送请求之前更改了cookie值,rails如何检查更改?现在我找不到rails检查更改的任何线索,如果它不检查,并且更改的seision\u id存在于web服务器会话存储中,其他会话的数据将为当前浏览器用户显示


如果有人对这个问题很清楚,你能给我解释一下吗?提前谢谢。

cookie是加密签名的。见:

请注意,对cookie进行签名与加密并不意味着相同的事情。用户只需稍加修改即可查看会话内容,但在不破坏签名的情况下无法更改会话内容


如果您想对用户隐藏会话内容,请不要使用cookie存储。

对不起,我无法访问您发送的链接。是的,签名与加密不同。但我只能在浏览器上看到rails创建的会话id cookie,rails如何仅依赖客户端发送的会话id来识别它是正确且一致的会话id?我还不清楚,你能提供更多的信息吗?谢谢你。也许你没有使用cookie_商店?如果您只能在cookie中看到会话id,那么您可能正在使用另一个存储。如果是这样的话,我建议更新你的问题,以便更清楚你真正在问什么。实际上,它的关键名称是_merpro_session,merpro是我的应用程序名,我只以“session_id”为例。你能给我更多关于rails如何存储session_id和通过签名检查session_id的信息吗?谢谢,不,对不起。代码可在web上查看。很抱歉,您目前无法看到它,但我也确信情况是可以解决的。要明确的是,这个评论帖子并不适合解释如此复杂的想法。如果您在理解rails代码方面有困难,我建议您在这个主题上提出一个新问题。