Raylarda CSRF jetonunu kapatın 3


105

Bir iPhone uygulamasına bazı API'ler sunan bir raylar uygulamam var. Doğru CSRF jetonunu almaya aldırmadan bir kaynağa basitçe gönderi yapabilmek istiyorum. Burada stackoverflow'da gördüğüm bazı yöntemleri denedim ama artık raylar üzerinde çalışmıyorlar gibi görünüyor 3.

Bana yardım için teşekkür ederim.

Yanıtlar:


175

CSRF'yi devre dışı bırakmak istediğiniz denetleyicide kontrol:

skip_before_action :verify_authenticity_token

Veya birkaç yöntem dışında her şey için devre dışı bırakmak için:

skip_before_action :verify_authenticity_token, :except => [:update, :create]

Veya yalnızca belirtilen yöntemleri devre dışı bırakmak için:

skip_before_action :verify_authenticity_token, :only => [:custom_auth, :update]

Daha fazla bilgi: RoR Talep Sahtecilik Koruması


1
Bu, tarayıcıdan erişilebilen normal formlar ve API uç noktaları karışımına sahip uygulamalar için doğru yanıttır. Markus Proske'nin cevabı, uygulamanızda tarayıcıdan erişilebilen herhangi bir formun bulunmayacağından kesinlikle eminseniz doğru olacaktır.
Asfand Qazi

Bu tam olarak nereye gidiyor? Ya denetleyici bir mücevherin parçasıysa?
Hesabı Atın

Bu çok benzer soruyu cevaplayabilir misiniz? stackoverflow.com/questions/50159847/…

105

Rails3'te belirli yöntemler için denetleyicinizdeki csrf belirtecini devre dışı bırakabilirsiniz:

protect_from_forgery :except => :create 

12
Okuyan herkes için, içeri girmesi gereken şeyin bu olduğunu unutmayın ApplicationController. Mike Lewis'in aşağıdaki yanıtı ( skip_before_filter :verify_authenticity_token), denetleyicinin miras aldığını varsayarsak, denetleyiciye göre nasıl devre dışı bırakılacağıdır ApplicationController.
NudeCanalTroll

Görünüşe göre bu güvenli değil stackoverflow.com/questions/10676018/… . Ne düşünüyorsun? bu mu?
siteler

@NudeCanalTroll Bunu, çalışmamasını istediğim yere denetleyiciye koymak mı demek istiyorsun?
BlackDivine

Bu çok benzer soruyu cevaplayabilir misiniz? stackoverflow.com/questions/50159847/…

32

Rails 4 ile artık skip_before_actionyerine yazma seçeneğiniz var skip_before_filter.

# Works in Rails 4 and 5
skip_before_action :verify_authenticity_token

veya

# Works in Rails 3 and 4 (deprecated in Rails 4 and removed in Rails 5)
skip_before_filter :verify_authenticity_token

1
Fark ne?
Adam D. Ruppe

Bu çok benzer soruyu cevaplayabilir misiniz? stackoverflow.com/questions/50159847/…

John Sam, vaktim olduğunda etrafından dolaşmaya çalışacağım.
jason328
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.