Rails + Devise - >清算会话Cookie

时间:2016-05-23 14:34:49

标签: ruby-on-rails session devise session-cookies warden

我遇到这样的情况:

使用Rails 4 + Devise

我注销了用户,在此期间我打开了我的Chrome开发工具并检查了网络中的标题。我感兴趣的是“sign_out”(动作/饼干?我不知道我应该在这里使用的确切名称)。

在它的请求标题中,我得到了一个会话变量“_app_name_session”。

如果我复制此变量并向我的网站的某些部分发出GET请求,要求用户进行身份验证,那么我会得到200 OK响应(尽管我已经注销了!)

我怎么能防止这种情况发生?

我已在我的Warden模型中尝试了User回调,如下所示:

Warden::Manager.before_logout do |user, auth, opts|
  auth.cookies.delete :_app_name_session
end

Warden::Manager.before_logout do |user, auth, opts|
  auth.cookies["_app_name_session"] = ""
end

但这不起作用,并且会在Cookie中设置会话变量。

注销后是否可以立即超时?

这确实困扰我,因为虽然会话应该在注销时被清除,但它不是,并且有一种方法(我知道,复杂和攻击者必须通过其他安全层)来劫持用户会话。

0 个答案:

没有答案