2013-07-23 2 views
0

С тех пор, как я узнал о дырах в безопасности с attr_accessible, я старался быть очень осторожным, когда дело доходило до такого типа вещей, поэтому мне просто нужно некоторое разъяснение.Rails security attr_accessible пользователи, делающие несанкционированные запросы

Скажем, у меня есть модель комментария и имеет

attr_accessible :user_id 

В моей форме я

= f.hidden_field :user_id, :value => @current_user.id 

поэтому я не принимая значения от Params, а текущего пользователя фактической Я БЫ.

Мое беспокойство не связано с моими собственными формами, но с запросами на изгоев. Например, что если кто-то отправить пост запрос следующим образом:

POST comments?user_id=5 

, когда их user_id на самом деле 1. Будут ли они в состоянии отправить от имени кого-то другого?

спасибо.

+1

на самом деле я бы не отправить current_user.id вообще через скрытое поле или форма. Вы также можете получить доступ к current_user внутри вашего контроллера, вот что я предпочитаю. – Flo

ответ

0

Да, вы абсолютно правы. Кажется, я просто понял ответ. В основном, когда атрибут не является attr_accessible, вы хотите установить его внутри своего контроллера напрямую, что делает невозможным его установку с помощью запроса-изгоя, как я упоминал выше. Кроме того, если ваш контроллер устанавливает переменную непосредственно из параметров, тогда вы знаете, что что-то не так и что эта переменная в основном attr_accessible.

Благодаря Flo