Rails存储每个请求的cookie。但是注销后,以前的cookie没有被删除,我正在使用工具(Burp Suite)来检查会话劫持的安全性。但是从rails中注销后,不会删除先前的会话。我可以转到上一页。有什么解决办法可以注销后删除登录用户的所有cookie,我可以尝试吗?
答案 0 :(得分:0)
在默认的Rails配置下,config.session_store
设置为:cookie_store
。使用此配置,当用户注销时,先前的cookie仍然有效,并且在服务器上没有失效。因此,如果您的浏览器或会话劫持工具未破坏cookie,则该用户将不会注销。用户甚至可以在仍登录时复制该cookie,并在注销后随http请求发送它。服务器无法确定用户已注销。
这是使用基于cookie的会话的权衡。如果您不希望这种行为,可以使用 ActiveRecordStore 之类的替代解决方案在数据库中存储会话。