ruby-on-rails – 带有Authlogic的Rails 3并调用reset_session

ruby-on-rails – 带有Authlogic的Rails 3并调用reset_session,第1张

概述RoR Security Guide声明您应该“发出新的会话标识符并在成功登录后声明旧的会话标识符无效”,使用reset_session方法来对抗会话固定. 使用Authlogic时,我无法找到有关调用reset_session的任何指导.是否只是在控制器方法中包含该方法的情况(如下所示)? 我只关心为Authlogic引起问题,因为我可以在调用reset_session之前在会话哈希中看到use RoR Security Guide声明您应该“发出新的会话标识符并在成功登录后声明旧的会话标识符无效”,使用reset_session方法来对抗会话固定.

使用Authlogic时,我无法找到有关调用reset_session的任何指导.是否只是在控制器方法中包含该方法的情况(如下所示)?

我只关心为Authlogic引起问题,因为我可以在调用reset_session之前在会话哈希中看到user_credentials和user_credentials_ID键和值.

class UserSessionsController < ApplicationController  def create    @user_session = current_clIEnt.user_sessions.new(params[:user_session])    if @user_session.save      reset_session      flash[:success] = I18n.t(:msg_login_success)      redirect_back_or_default application_root_path    else      render :action => :new    end  end
解决方法 作为参考,这是我目前的方法:

def create  @user_session = current_clIEnt.user_sessions.new(params[:user_session])  if @user_session.save    # reset session to counter session fixation    # whilst retaining values except for those that the application has created specific to the current user    temp_session = session.merge("current_user" => {}).clone    reset_session    session.reverse_merge!(temp_session)    # set flash msg and redirect    flash[:success] = I18n.t(:msg_login_success)    redirect_back_or_default application_root_path  else    render :action => :new  endend

根据http://guides.rubyonrails.org/security.html#session-fixation-countermeasures中的建议,在成功登录后仍然执行reset_session调用

总结

以上是内存溢出为你收集整理的ruby-on-rails – 带有Authlogic的Rails 3并调用reset_session全部内容,希望文章能够帮你解决ruby-on-rails – 带有Authlogic的Rails 3并调用reset_session所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1267795.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存