Flask CSRF Koruması Nasıl Etkinleştirilir?

0 Yanıt 10 Görüntülenme
Puanlayanlar
Katılımcılar
Konuyu Açan #1
Flask'ta CSRF Koruması Nasıl Etkinleştirilir?

Günümüzde web uygulamalarında güvenlik, geliştirme sürecinin en kritik aşamalarından biridir. Özellikle form tabanlı veri girişlerinde CSRF (Cross-Site Request Forgery) saldırılarına karşı koruma sağlamak, uygulamaların güvenliğini artırır. Flask, minimal ve esnek yapısıyla bu noktada çeşitli yöntemler sunar, bunlardan en yaygını ise Flask-WTF eklentisiyle gelen CSRF korumasıdır.

İlk adım olarak, Flask-WTF kütüphanesini projeye dahil etmek gerekir. Bu, Flask-WTF’nin form sınıflarına entegre edilmesiyle, otomatik olarak CSRF token’larının üretilip doğrulanmasını sağlar. Kurulum için şu komutu kullanabilirsiniz:

KOD
1pip install flask-wtf


Daha sonra, uygulama konfigürasyonuna aşağıdaki ayarları eklemek şarttır:

KOD
1234
app = Flask([b]name[/b])
app.secret_key = 'gizli_anahtar'
app.config['WTF_CSRF_SECRET_KEY'] = 'diger_gizli_anahtar'


Burada, 'secret_key' ve 'WTF_CSRF_SECRET_KEY' alanları, CSRF token’larının güvenli ve rastgele üretilmesini sağlar. Ayrıca, CSRF korumasını aktif hale getirmek için, Flask-WTF’nin CSRFProtect sınıfını uygulamaya dahil etmek gerekir:

KOD
123
from flask_wtf import CSRFProtect
csrf = CSRFProtect(app)


Bu noktadan sonra, form template’lerinde CSRF token’ını eklemek önemli. Flask-WTF ile oluşturulan formlarda otomatik olarak gelir; manuel form kullanımı söz konusuysa, şu yapıyı kullanabilirsiniz:

KOD
12345

    {{ form.hidden_tag() }}
    



Son olarak, sunucu tarafında gelen POST isteklerini CSRF doğrulaması yapmadan kabul etmemek, güvenlik açısından olmazsa olmazdır. Flask-WTF ve CSRFProtect kullanımıyla, uygulama dış tehditlere karşı önemli ölçüde dayanıklı hale gelir.

Eğer API veya AJAX tabanlı isteklerde de CSRF koruması gerekiyorsa, uygun şekilde token’ların header’da gönderilmesi ve doğrulanması gerekir. Bu, uygulamanın güvenliğini artırmak ve saldırıları engellemek adına kritik bir adımdır.

Yanıt vermek için giriş yapmış olmalısınız.

0 alıntı seçildi