我有简单的应用程序,但我很关心用户数据的保密性。 使用这种类型的验证是否安全?
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
答案 0 :(得分:1)
我会说过滤器通常是安全的,但我不能保证您的登录管理以及如何识别用户。如果有人设法破解current_user
方法,那么可能存在一些问题,但是如果验证代码来自Devise,Authlogic或维护良好的gem,那么您不必担心它。
您也可以考虑使用CanCan来管理您的权限。定义这样的案例很简单,并且有一个中央文件用于管理所有权限,因此您可以保持代码的灵活性。