在Rails 2中,如何阻止用户只更改id#并访问其他对象?
例如:
website.com/users/1231/edit
如何阻止用户更改1231
并访问其他帐户?
答案 0 :(得分:8)
@user = User.find params[:id]
redirect_to :back unless current_user == @user
答案 1 :(得分:2)
在控制器中使用before_filter
。
class Users < ApplicationController
before_filter :require_user, :only => [:show]
private
def require_user
@user = User.find_by_id(params[:id])
redirect_to root_url if @user.nil?
end
end
答案 2 :(得分:-1)
使用权限检查gem,如CanCan或Aegis。两者都有约定,可以自动为每个控制器上的每个方法添加权限检查。