Rails 4:当浏览器关闭时,会话值永远不会“过期”或消失

和我

请参阅问题末尾的更新

在Rails 4中,我了解默认情况下,会话仅应存在于浏览会话中。如果关闭浏览器,则会话将不再存在。

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

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

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

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

我以为会话应该在浏览器默认关闭时到期?我也尝试过用“ cookies”代替会话,并得到相同的结果。

简而言之,当用户关闭浏览器时,如何获得过期/失效的会话/ cookie?如果用户不希望所有会话都持续下去,对我来说似乎并不安全,而且我也不想让用户每次关闭浏览器时都删除它们的cookie(可能在公共计算机上,他们的登录信息仅应保留到关闭浏览器为止)。

更新我认为我发现了可能导致问题的原因。我使用Chrome作为浏览器,并且在浏览器关闭和打开时将其设置为“记住我离开的地方”。这似乎可以保存所有会话/ cookie。我也通过Gmail对此进行了验证。如果您设置了“记住我离开的地方”,但未在Gmail中设置“记住我”令牌,则在关闭/打开浏览器时,Gmail会立即备份。如果您告诉Chrome浏览器在打开时打开一个新标签,则Gmail会像您期望的那样将您引导至登录页面。

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

这是我可以切实预防的吗?如果Gmail存在此缺陷(由一群非常聪明的开发人员组成),我是否应该为这种情况而烦恼?

和我

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当浏览器关闭时,阻止会话过期

来自分类Dev

Rails 4:当浏览器关闭时,会话值永远不会“过期”或消失

来自分类Dev

Passport会话不会在浏览器关闭时被破坏

来自分类Dev

rails:rails的条件4

来自分类Dev

浏览器关闭时销毁会话-Ruby on Rails

来自分类Dev

Laravel-验证会话在浏览器关闭后不会过期

来自分类Dev

Rails控制器在浏览器中呈现JSON

来自分类Dev

会话不会持续在Rails 4中

来自分类Dev

使用Judge gem验证Rails 4中的电子邮件字段。跨浏览器问题

来自分类Dev

在智能手机上关闭Chrome浏览器时,会话Cookie不会过期

来自分类Dev

在浏览器关闭时使ASPXAUTH Cookie过期

来自分类Dev

当浏览器关闭时,PHP会话Cookie会过期

来自分类Dev

Rails服务器启动时如何自动启动浏览器?

来自分类Dev

当浏览器在MVC中关闭时,阻止会话过期

来自分类Dev

Rails / ReactJs视图未在浏览器刷新时更新

来自分类Dev

Rails服务器拒绝在浏览器中连接

来自分类Dev

Django CSRF Cookie-为什么它不会在浏览器关闭时过期?

来自分类Dev

Rails 4挂在重复的浏览器刷新上

来自分类Dev

关闭浏览器时的会话超时

来自分类Dev

rails:rails的条件4

来自分类Dev

浏览器关闭时销毁会话-Ruby on Rails

来自分类Dev

使用Judge gem验证Rails 4中的电子邮件字段。跨浏览器问题

来自分类Dev

浏览器无法为Rails 4站点缓存页面资产

来自分类Dev

带有Rails4的浏览器无法访问ec2实例

来自分类Dev

关闭浏览器或标签浏览器时,使用OWIN关闭会话

来自分类Dev

Rails 4:提交失败后滚动浏览器窗口以形成表单(验证错误)

来自分类Dev

Rails 4-用户按下浏览器后退按钮时更新特定数据

来自分类Dev

Rails 4 @ posts.each在Web浏览器中没有显示帖子记录

来自分类Dev

Flask 会话 cookie 不会在浏览器关闭时持续存在

Related 相关文章

  1. 1

    当浏览器关闭时,阻止会话过期

  2. 2

    Rails 4:当浏览器关闭时,会话值永远不会“过期”或消失

  3. 3

    Passport会话不会在浏览器关闭时被破坏

  4. 4

    rails:rails的条件4

  5. 5

    浏览器关闭时销毁会话-Ruby on Rails

  6. 6

    Laravel-验证会话在浏览器关闭后不会过期

  7. 7

    Rails控制器在浏览器中呈现JSON

  8. 8

    会话不会持续在Rails 4中

  9. 9

    使用Judge gem验证Rails 4中的电子邮件字段。跨浏览器问题

  10. 10

    在智能手机上关闭Chrome浏览器时,会话Cookie不会过期

  11. 11

    在浏览器关闭时使ASPXAUTH Cookie过期

  12. 12

    当浏览器关闭时,PHP会话Cookie会过期

  13. 13

    Rails服务器启动时如何自动启动浏览器?

  14. 14

    当浏览器在MVC中关闭时,阻止会话过期

  15. 15

    Rails / ReactJs视图未在浏览器刷新时更新

  16. 16

    Rails服务器拒绝在浏览器中连接

  17. 17

    Django CSRF Cookie-为什么它不会在浏览器关闭时过期?

  18. 18

    Rails 4挂在重复的浏览器刷新上

  19. 19

    关闭浏览器时的会话超时

  20. 20

    rails:rails的条件4

  21. 21

    浏览器关闭时销毁会话-Ruby on Rails

  22. 22

    使用Judge gem验证Rails 4中的电子邮件字段。跨浏览器问题

  23. 23

    浏览器无法为Rails 4站点缓存页面资产

  24. 24

    带有Rails4的浏览器无法访问ec2实例

  25. 25

    关闭浏览器或标签浏览器时,使用OWIN关闭会话

  26. 26

    Rails 4:提交失败后滚动浏览器窗口以形成表单(验证错误)

  27. 27

    Rails 4-用户按下浏览器后退按钮时更新特定数据

  28. 28

    Rails 4 @ posts.each在Web浏览器中没有显示帖子记录

  29. 29

    Flask 会话 cookie 不会在浏览器关闭时持续存在

热门标签

归档