gpt4 book ai didi

security - 导轨 4 : session value never "expires" or dies when browser closes

转载 作者:行者123 更新时间:2023-12-04 00:39:38 25 4
gpt4 key购买 nike

请参阅问题末尾的更新

在 Rails 4 中,我知道 session 在默认情况下只应该存在于浏览 session 中。如果您关闭浏览器, session 将不复存在。

但是,我发现情况并非如此。我有一个使用 Rails 提供的所有默认设置的 Rails 4 应用程序。我正在处理一些身份验证代码并遇到了这个问题。

当用户登录系统时,他们可以通过复选框选择“记住我”。当他们选中该框时, session 应该有 2 周的到期时间。目标是当用户登录系统并关闭浏览器时,他可以再次打开浏览器并使用该应用程序,而无需再次进行身份验证。

另一方面,如果用户不想选中“记住我”框并登录到应用程序并关闭浏览器,当浏览器再次打开时,用户应该被要求再次进行身份验证,因为他的 session “浏览器关闭时“已过期”。

问题是我的 session 永远不会消失。我测试了一些简单的代码,在第 1 页我在 Controller 中设置了一个 session 变量,然后在第 2 页我显示了该 session 。当我关闭浏览器并转到第 2 页(不是第 1 页,因此未再次设置 session )时, session 仍然像以前一样存在。

我认为 session 应该在浏览器默认关闭时过期?我也用“cookies”而不是 session 来尝试这个,并得到相同的结果。

简而言之,当用户关闭浏览器时,我如何获得一个过期/死亡的 session /cookie?如果用户不希望所有 session 持续存在,对我来说似乎不是很安全,而且我不会让我的用户每次关闭浏览器时都删除他们的 cookie(可能在公共(public)计算机上)他们的登录信息应该只保留到他们关闭浏览器为止)。

更新我想我找到了可能导致问题的原因。我使用 Chrome 作为我的浏览器,当浏览器关闭和打开时,我将它设置为“记住我离开的地方”。这似乎可以保存所有 session /cookie。我也用 Gmail 验证了这一点。如果您设置了“记住我离开的地方”,但没有在 Gmail 中设置记住我标记,当您关闭/打开浏览器时,Gmail 会立即重新打开。如果您告诉 Chrome 在打开时打开一个新标签页,那么 Gmail 会像我预期的那样将您发送到登录页面。

这样解决了一个问题,但总体问题依然存在。我怎样才能使这个“安全”?假设您在公共(public)计算机上,恶意用户将浏览器设置为在打开浏览器时“记住我离开的地方”。因此,您登录了一个应用程序(例如 Gmail),但没有选中“记住我”框。因此,当您关闭浏览器时,您希望您的登录是“安全的”。但是,如果另一个用户打开浏览器备份,他已经登录到您的应用程序。

这是我可以切实避免的事情吗?如果 Gmail 有这个缺陷(有一群非常聪明的开发人员),我应该为这种情况的存在而烦恼吗?

最佳答案

浏览器的“记住我离开的地方”功能确实是问题所在。删除该选项会导致我的 cookie/ session 出现“预期”行为。

关于security - 导轨 4 : session value never "expires" or dies when browser closes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20449641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com