"CSRF Protection Not Enabled"
Ne oldu şimdi? Hemen ne yapacağınızı bilmiyorsunuz, ama endişelenmeyin! Flask'ta bu hata, uygulamanızın güvenliğiyle ilgili önemli bir eksiklik olduğunu gösteriyor. Hadi gelin, bu hatayı anlamaya ve çözmeye çalışalım.
CSRF Nedir?
Flask, default olarak CSRF korumasını etkinleştirmez. Eğer formlarınızı düzgün şekilde korumazsanız, uygulamanız bu tür saldırılara karşı savunmasız hale gelir.
Hata Nedir?
Çözüm: CSRF Korumasını Aktif Hale Getirme
İşte bu hatayı çözmek için yapmanız gerekenler:
1. Flask-WTF'yi Yükleyin
İlk adım, Flask-WTF uzantısını yüklemektir. Bunun için terminal veya komut satırında şu komutu kullanabilirsiniz:
pip install Flask-WTF
2. CSRF Korumasını Etkinleştirme
Flask uygulamanıza Flask-WTF'yi ekledikten sonra, CSRF korumasını aktif hale getirebilirsiniz. Flask-WTF, Flask uygulamanızla kolayca entegre olur. İşte basit bir yapılandırma örneği:
from flask import Flask, render_template, request
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from flask_wtf.csrf import CSRFProtect
app = Flask(__name__)
app.secret_key = 'sadece_bir_anahtar'
csrf = CSRFProtect(app)
class MyForm(FlaskForm):
name = StringField('Adınız')
submit = SubmitField('Gönder')
@app.route('/', methods=['GET', 'POST'])
def index():
form = MyForm()
if form.validate_on_submit():
name = form.name.data
return f"Merhaba, {name}!"
return render_template('index.html', form=form)
if __name__ == "__main__":
app.run(debug=True)
Burada dikkat etmeniz gereken birkaç şey var:
- app.secret_key: CSRF token'larını oluşturabilmek için Flask uygulamanızda bir secret key gereklidir. Bu anahtar her zaman güvenli ve karmaşık olmalıdır.
- csrf = CSRFProtect(app): Bu satır, Flask uygulamanızda CSRF korumasını etkinleştirir.
3. HTML Formunu Güncelleme
Formların HTML tarafında da küçük bir değişiklik yapmamız gerekiyor. Flask-WTF, CSRF token’ını otomatik olarak formunuza ekler, ancak formunuzu şu şekilde güncellemeniz gerekir:
`{{ form.hidden_tag() }}` ifadesi, CSRF token'ını formunuza ekler ve güvenli bir şekilde form verilerini gönderir.
4. Test Etme
Uygulamanızda CSRF korumasını aktif hale getirdiğinizde, formlarınız artık güvenli olacaktır. Tarayıcıda formu doldurup gönderdiğinizde, "CSRF Protection Not Enabled" hatasını bir daha görmeyeceksiniz.
Sonuç
Eğer bu hata ile karşılaşırsanız, çözüm için yukarıdaki adımları takip edin ve uygulamanızın güvenliğini sağlamlaştırın. Unutmayın, güvenlik her şeyden önce gelir!