Как мне защитить этот пост-запрос к Rails? - PullRequest
2 голосов
/ 21 января 2011

Я пытаюсь установить безопасность для моих вызовов AJAX.У меня есть пост-вызов jQuery, который удаляет заметку.Из того, что я прочитал, кажется, что мне нужно использовать protect_from_forgery, чтобы убедиться, что сообщение приходит от действительного пользователя.

Это то, что у меня есть

application_controller.rb

class ApplicationController < ActionController::Base
  protect_from_forgery
...

index.html

$.post('../delete_note',{id:$('#note_id').val()}, function(data) {

});

note_controller.rb

def delete_note
    y params
    render :text => "success"
end 

В настоящий момент Rails выполняет запрос на публикацию, даже если яЯ не отправляю токен безопасности с ним.Что мне нужно сделать для защиты вызова?

Я использую Rails 3.0.1 и devise для управления пользователями.

1 Ответ

3 голосов
/ 21 января 2011

Вы, вероятно, хотите убедиться, что пользователь вошел в систему, используя в вашем контроллере заметок что-то вроде:

before_filter :authenticate_member!, :except => [:index]

Кроме того, проверьте, есть ли у пользователя права на удаление заметки, для чего вы хотите использовать решение для авторизации, например cancan .

...