2010-12-01 20 views
5

Sitemdeki CSRF korumasını test ediyorum ve beklenmedik bir şey fark ettim.Django 1.2'de {% csrf_token%} CSRF koruma etiketi hala gerekli mi?

Formumdan {% csrf_token %} kaldırdım ve gönderim hala çalışıyor. Neden işe yaramadı? Daha sonra kaynağa baktım ve belirtinin <form> öğesinin hemen yanında olduğunu anladım. Kaynağın kesinlikle güncellenmekte olduğundan emin olmak için formun kimliğini değiştirdim ve gizli girdi hala var.

Django 1.2 kullanıyorum. {% csrf_token %} hala gerekli mi?

Cheers belgelerine

Zengin

+1

Daha fazla araştırma yapıldıktan sonra, formun 'post' yöntemine sahip olması durumunda, eğer olmasa da, {% csrf_token%} her zaman eklenir. Çok zeki Django. Otomatik koruma. – Rich

+0

bunu bir cevap olarak gönderip kabul edin (kendi cevabınızı kabul edebilmek için 24 saat beklemeniz gerekebilir). –

cevap

4

fazla araştırma sonra Seçmemişseniz {% csrf_token %} her zaman bir şekilde yöntem post varsa takılı değildir ve görüntülenir. Django'dan çok akıllı otomatik koruma.

+1

Bunun yalnızca middleware sınıflarınıza 'django.middleware.csrf.CsrfResponseMiddleware' eklerseniz gerçekleştiğine inanıyorum. Artık tavsiye edilmez. Http://docs.djangoproject.com/en/dev/ref/contrib/csrf/#legacy-method adresine bakın. –

İlgili konular