Rails CSRF Контрмеры пользователей редактируют и обновляют - PullRequest
1 голос
/ 28 октября 2010

Я устанавливаю безопасность в своем приложении Rails в соответствии с Ruby on Rails Guide .

Насколько я понимаю, метод 'edit' в контроллере пользователей (который я использую для отображения представления пользовательских настроек) должен только отправлять запрос GET, а метод update - отправкуПОЧТОВЫЙ запрос.Но когда я хочу проверить типы запросов для различных методов, таких как:

#UsersController
verify :method => :post, :only => [:update], :redirect_to => {:action => :show}

, приложение не сохраняет никаких изменений, внесенных в пользовательские настройки.И если я изменю проверку на

verify :method => :post, :only => [:update, :edit], :redirect_to => {:action => :show}

, я даже не смогу отобразить представление настроек.

StackOverflow обычно отлично подходит для обучения меня по тем областям, о которых я мало знаю, кто угоднознаете, что может происходить?

1 Ответ

1 голос
/ 28 октября 2010

Ты близко, но немного не в себе.Вот семь маршрутов RESTful и используемый ими метод:

  1. index: GET
  2. show: GET
  3. new: GET
  4. create: POST
  5. edit: GET
  6. update: PUT
  7. destroy: DELETE

Как видите, для обновления требуется PUT.Это создание, которое использует POST.Это должно исправить это:

verify :method => :put, :only => [:update], :redirect_to => {:action => :show}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...