validate_on_submit ve CSRF Belirteçleri
Geçerli gönderimleri işleyip sahte gönderimleri engelleyin.
validate_on_submit ve CSRF Belirteçleri, CoddyKit'te ücretsiz bir Flask Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Flask Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Flask Academy kursu toplamda 4 dersten oluşur.
Temel Yöntem
Flask-WTF size her şeyi tek seferde denetleyen bir yöntem sunar. validate_on_submit, herhangi bir formu güvenli biçimde işlemenin temelidir. 🔑
Aslında Neyi Denetler
validate_on_submit, yalnızca istek POST olduğunda ve tüm doğrulayıcılar başarılı olduğunda True döndürür. Tek bir çağrı her iki koşulu da denetler.
if form.validate_on_submit():
pass # safe to use the dataStandart Görünüm Kalıbı
Bu yapı her Flask uygulamasında tekrarlanır: formu oluşturun, validate_on_submit sonucuna göre dallanın ve ardından sayfayı görüntülemeye geçin.
form = LoginForm()
if form.validate_on_submit():
return redirect('/home')
return render_template('login.html', form=form)Gönderildi ve Geçerli Farklıdır
Bu ikisini karıştırmayın. is_submitted yalnızca yöntemi denetler; validate_on_submit ise verilerin her kuralı da geçtiğini doğrular.
form.is_submitted() # POST?
form.validate_on_submit() # POST and valid?CSRF Neden Önemlidir
Bir CSRF saldırısı, oturum açmış bir kullanıcıyı hiç yapmak istemediği bir formu göndermesi için kandırır. Belirteçler, isteğin kendi sayfanızdan geldiğini kanıtlar.
SECRET_KEY Gereklidir
CSRF belirteçleri imzalanır; bu nedenle Flask'ın bir SECRET_KEY değerine ihtiyacı vardır. Bu değer olmadan doğrulama başarısız olur ve Flask-WTF formu korumayı reddeder.
app.config['SECRET_KEY'] = 'change-me-in-production'Sayfadaki Belirteç
hidden_tag çağrısı, imzalı belirteci gizli bir girdi olarak sayfaya yerleştirir. Tarayıcı bunu her gönderimde geri yollar.
{{ form.hidden_tag() }}Doğrulama Belirteçleri Karşılaştırır
Gönderim sırasında Flask-WTF, gönderilen belirteci oturumdaki belirteçle karşılaştırır. Eksik veya süresi geçmiş bir belirteç, validate_on_submit işlevinin False döndürmesine neden olur.
if not form.validate_on_submit():
pass # bad token or failed ruleNeden Başarısız Olduğunu İnceleyin
Doğrulama başarısız olduğunda form.errors değerine bakın. Bu değer, her alan adını sorunu açıklayan mesajlar listesiyle eşleştirir.
if not form.validate_on_submit():
print(form.errors)İşleyin, Sonra Yönlendirin
Başarılı bir gönderimden sonra işlemi bir yönlendirmeyle tamamlayın. Bu, PRG kalıbını uygular ve yenilemenin formu iki kez göndermesini önler.
if form.validate_on_submit():
save(form.data)
return redirect('/done')CSRF'yi Düşünmeden Devre Dışı Bırakmayın
API'ler için CSRF'yi kapatabilirsiniz; ancak tarayıcı formlarında bunu asla yapmayın. Korumanın açık tutulması, Flask-WTF kullanmanın temel nedenidir.
Hızlı Kontrol
form.validate_on_submit() ne zaman True döndürür?
Özet
Yöntem ve kuralları birlikte denetlemek için validate_on_submit kullandınız, imzalı CSRF belirteçleri için SECRET_KEY ayarladınız ve başarıdan sonra yönlendirme yaptınız. 🛡️
Sıkça Sorulan Sorular
“validate_on_submit ve CSRF Belirteçleri” dersi ücretsiz mi?
Evet — “validate_on_submit ve CSRF Belirteçleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Flask Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Flask Academy kursu toplamda 4 dersten oluşur.
“validate_on_submit ve CSRF Belirteçleri” dersinde ne öğreneceğim?
Geçerli gönderimleri işleyip sahte gönderimleri engelleyin. Flask Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Flask Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Flask Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“validate_on_submit ve CSRF Belirteçleri” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Flask Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Flask Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- FlaskForm Sınıfı Tanımlama
- Form Oluşturma ve Gönderme
- validate_on_submit ve CSRF Belirteçleri
- Özel Doğrulayıcılar ve Alan Hataları