Tüm AJAX POST isteklerinin siteden bir authenticity_token olmadan geçmesine izin verecek raylarda herhangi bir düzenleme var mı?My jquery AJAX POST istekleri bir Authenticity Token (Rails) göndermeden çalışır
Bir denetleyici yöntemini çağıran bir JQuery POST ajax çağrısı alıyorum, ancak herhangi bir özgünlük kodu koydum ve çağrı başarılı.
Ben de aşırı değildi sağlamak için kodumu aradık/development.rb
Benim ApplicationController 'request_forgery_protection' var ve benim ortamlarda false
config.action_controller.consider_all_requests_local
değiştirdik ajaxStatiklik belirteçleri gönderir.
Çekmeyi devre dışı bırakan bazı mekanizmalar var mı? Şimdi, CSRF korumamın çalışıp çalışmadığından emin değilim.
Rails 2.3.5 kullanıyorum. netlik için
Güncelleme:
function voteup(url, groupid){
$.ajax({
type: "POST",
url: "/groups/" + groupid + "/submissions/voteup",
data: "url=" + url,
dataType: 'text',
success: function(data){
var counter = "vote_" + url;
$('#vote_' + url.cleanify()).text(" " + data + " ");
}
});
};
Sonra yukarıdaki işlevini çağıran bir 'href sahip bir bağlantı vardır:
<a href='javascript:voteup(param1,param2)'>...</a>
Ben benzer bir soruya cevap hatırladı burada buldum: http://stackoverflow.com/sorular/2725118/raylar-istek-sahtecilik-koruma-ayarları/2725991 Sanırım yerel bir istek onun olması gerekir. Farklı bir bağlantı noktasında veya farklı bir alanda çalışan bir uygulamadan çalışmaz. Örn: Eğer uygulamanızı localhost: 3000 üzerinde çalıştırıyorsanız, localhost'tan ajax POST yapamazsınız: 3001. –
Merhaba Shripad, Gönderinizi gördüm, ama bu nasıl oluyor? Bir çeşit Rails büyüsü var mı? Online görünüyor, hala form_authenticity_token göndermek için yönergeleri yazan insanlar görüyorum, bu nedenle, sabit, neden hala bunu yapmaya gerek var? –
Bunun, Rails büyüsüyle hiçbir ilgisi yoktur. Ajax, etki alanının kendisinde çağrılırsa bir kimlik doğrulama belirteci olmadan çalışır. Ajax'ın etki alanınızda çalışması için değil, diğer etki alanlarından gelen saldırıları engellemek için bir kimlik doğrulama belirtecine ihtiyacınız vardır. Uygulama denetleyicinizde "protect_from_forgery" işlevinin olması için birincil neden budur. Başka bir alandan saldırıya en iyi örnek "Myspace sammy solucanı" dır. Baksana. O zaman neden bir auth jetonuna ihtiyacınız olduğunu anlayacaksınız. –