首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails:调用destroy_user_session_path后未正确销毁用户会话cookie

问Rails:调用destroy_user_session_path后未正确销毁用户会话cookie
EN

Stack Overflow用户
提问于 2013-06-07 14:31:13
回答 2查看 2.4K关注 0票数 3

嗨,我正在使用Devise身份验证创业板,我遇到了一些问题,试图正确地使会话cookie失效。

例如:

  • 用户登录应用程序并保存他的会话cookie。
  • 用户将退出并获得一个新的会话cookie。
  • 用户可以通过强制浏览器使用他保存的旧会话cookie来重新登录服务器。

这是一个安全问题,我需要得到解决,因为这允许黑客只是嗅探饼干和认证自己作为一个授权用户登录应用程序。

当我调用destroy_user_session_path时,设计LDAP实际上并不会使旧会话失效,相反,它只是创建一个新会话并给它用户浏览器。

我是否可以使用任何设计设置来更改此设置。我真的不想自己去改变设计宝石。

devise.rb

代码语言:javascript
复制
Devise.setup do |config|

  config.ldap_create_user = true
  config.ldap_update_password = false

  config.mailer_sender = "please-change-me-at-config-initializers-devise@example.com"

  require 'devise/orm/active_record'

  config.authentication_keys = [ :email ]

  config.case_insensitive_keys = [ :email ]

  config.strip_whitespace_keys = [ :email ]

  config.skip_session_storage = [:http_auth]

  config.stretches = Rails.env.test? ? 1 : 10

  config.reconfirmable = true

  config.reset_password_within = 6.hours

  config.sign_out_via = :delete

end
EN

回答 2

Stack Overflow用户

发布于 2013-10-04 18:45:06

这是基于cookie的会话存储的标准行为--特别是默认的Rails/Rack CookieStore。会话完全保存在cookie中,服务器上没有会话状态(据我所知)。这意味着,如果有人窃取了cookie,他们可以访问该用户帐户,而唯一使cookie失效的方法是更改用于数字签名的秘密。最好的防御措施是为整个站点使用SSL。您还可以向ApplicationController添加一些前/后筛选器,并应用一些其他缓解策略,如时间戳和保留有效/活动会话列表。这个链接很好地描述了一些选项:

https://www.coffeepowered.net/2013/09/26/rails-session-cookies/

票数 1
EN

Stack Overflow用户

发布于 2018-03-28 14:59:23

本刊:https://github.com/plataformatec/devise/issues/3031

必须将会话存储更改为活动记录会话存储- store

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16986605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档