Добавление безопасности на маршрутах в Rails - PullRequest
0 голосов
/ 25 июля 2011

В Rails 2, как я могу запретить пользователю просто изменять id # и получать доступ к другим объектам?

Например:

website.com/users/1231/edit

Как запретить пользователю изменять1231 и доступ к другой учетной записи?

Ответы [ 3 ]

8 голосов
/ 25 июля 2011
@user = User.find params[:id]
redirect_to :back unless current_user == @user
2 голосов
/ 25 июля 2011

Используйте 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
0 голосов
/ 26 июля 2011

Используйте драгоценный камень для проверки прав доступа, например, CanCan или Aegis.Оба имеют соглашения, которые автоматически добавляют проверку прав доступа к каждому методу на каждом контроллере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...