Rails:使用这种样式的before_filter是否安全

时间:2011-08-22 17:43:32

标签: ruby-on-rails ruby-on-rails-3

我有简单的应用程序,但我很关心用户数据的保密性。 使用这种类型的验证是否安全?

before_filter :authenticate, :only => [:show, :edit, :update]
before_filter :correct_user, :only => [:show, :edit, :update]

def authenticate
  redirect_to(root_path) unless !current_user.nil?
end
def correct_user
  redirect_to(root_path) unless current_user == User.find(params[:id])
end

1 个答案:

答案 0 :(得分:1)

我会说过滤器通常是安全的,但我不能保证您的登录管理以及如何识别用户。如果有人设法破解current_user方法,那么可能存在一些问题,但是如果验证代码来自Devise,Authlogic或维护良好的gem,那么您不必担心它。

您也可以考虑使用CanCan来管理您的权限。定义这样的案例很简单,并且有一个中央文件用于管理所有权限,因此您可以保持代码的灵活性。