Если attr_accesible не установлен, может кто-нибудь изменить идентификатор? - PullRequest
1 голос
/ 18 апреля 2011

Мне интересно, если у меня есть модель, где все значения могут быть установлены через форму, мне все еще нужно использовать attr_accessible?

Важная вещь, которая приходит мне в голову, это поля id (или, может быть, даже поля create_at, updated_at).

Должен ли я всегда вносить в белый список доступные поля, если вокруг есть форма?

Ответы [ 2 ]

2 голосов
/ 18 апреля 2011
  1. Вам следует подумать, если в будущем вы добавите некоторые важные данные и забудете их защитить. Использование attr_accessible будет защищено по умолчанию.

  2. Если есть какие-либо ассоциации, такие как user has_many :roles, :through => :authorization, в модели пользователя нет никаких данных об этой ассоциации, но хакер может mass_assign roles_attributes. Поэтому он изменит данные в таблице authorizations через отверстие в пользовательской модели.

  3. Кроме того, он сможет использовать простые has_many :dollars ассоциации, передавая dollar_ids=[1,2,3,4,5,6,7...] через форму.

Вы можете также проверить скринкаст Райана о массовом назначении

http://railscasts.com/episodes/26-hackers-love-mass-assignment

1 голос
/ 18 апреля 2011

нет, идентификатор явно исключен.на самом деле, включение его в attr_accessible все еще не позволит людям перезаписать его.

, но все же рекомендуется использовать attr_accessible, даже если вы собираетесь разрешить людям обновлять все

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