CSRF Cross-Site Request Forgery yang dimaksud disini adalah melindungi aplikasi website python flask yang kita buat dari serangan CSRF. Nah ini bagian penting banged dalam nilai keamanan sebuah aplikasi. Jadi Flask menyediakan perlindungan CSRF dengan mengenerate token yang hanya dapat diterjmahkan oleh flask sendiri dalam satu server yang bekerja . Proteksi CSRF ini hanya dapat bekerja pada layanan aplikasi dengan menerapkan SSL ( Security Socket Layer ) artinya aplikasi website kita harus dalam keadaan terenkripsi ( https ).
Untuk mengaktifkan CSRF Flask ini , yatu dengan cara mengaktifkan module Flask-wtf , jada anda tinggal menginstall saja flask-wtf , dengan perintah :
pip install flask-wtf
setelah di install tambah kan modul CSRF tersebut pada script flask anda seperti contoh berikut ini
from flask import Flask, render_template
from flask_wtf.csrf import CSRFProtect
app = Flask(__name__,static_url_path='')
csrf = CSRFProtect(app)
@app.route('/')
def index():
return render_template('index.html')
app.secret_key = 'BuatSecretKey'
if __name__ == "__main__":
app.run(host='127.0.0.1',port=2023,debug=True)
perhatikan baris kedua dan baris keempat, kita sudah menambahkan fungsi keamaan form request pada aplikasi kita dari proses kejaharan CSRF. nah pekerjaan belum selesai , anda harus menambahkan generate kode CSRF didalam file html yang berisi request kepada server dengan menempatkan dibawah tag <form .... > seperti berikut :
<form action="/login" method="post">
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}"/>
.....
</form>
jadi setiap terdapat proses request POST dari sebuah from secara otomatis akan pula merequest token CSRF baru yang selanjutnya di validasi oleh flask . Bila validasi token CSRF yang dikirimkan itu diterima oleh Flask maka proses POST akan diterima bila tidak , maka Proses POST akan di tolak.