Bu sorun, Devise ile ilgili değil. Kısacası, Rails 3.0.4'ten beri, GET olmayan her isteğin CSRF belirtecine sahip olması gerekir, aksi halde oturum silinir.
şimdi tüm olmayan GET istekleri için gerekli olacak bu düzeltme iki önemli değişiklikler CSRF koruma değişti başarısız davranışı ve simge vardır.
bu yamayı uyguladıktan sonra artık HTTP 500 hataları,
yerine seans sıfırlanır üretecektir CSRF istekleri başarısız oldu. Kullanıcılar, bu davranışını, kendi denetleyicilerinde handle_unverified_request geçersiz kılarak geçersiz kılabilir. Burada
Diğer ayrıntılar:
Ajax.Responders.register({
onCreate: function(request) {
var csrf_meta_tag = $$('meta[name=csrf-token]')[0];
if (csrf_meta_tag) {
var header = 'X-CSRF-Token',
token = csrf_meta_tag.readAttribute('content');
if (!request.options.requestHeaders) {
request.options.requestHeaders = {};
}
request.options.requestHeaders[header] = token;
}
}
});
: En AJAX ile kullanmak
http://weblog.rubyonrails.org/2011/2/8/csrf-protection-bypass-in-ruby-on-rails
jQuery pasajı size prototipi kullanıyorsanız, aşağıdaki kodu gerekir
$(document).ajaxSend(function(e, xhr, options) {
var token = $("meta[name='csrf-token']").attr("content");
xhr.setRequestHeader("X-CSRF-Token", token);
});
istekleri
Tamam .. Bir süre 3.0.3 tutacağım .. thanx! –