Latar Belakang
Setup Aplikasi
Disini kita tidak akan membahas cara mengaktifkan perlindungan CSRF di aplikasi Spring.
Seperti yang kita ketahui, kita dapat menemukan token CSRF di cookie klien, dan secara default, perlindungan CSRF diterapkan untuk kata kerja HTTP POST, PUT, dan DELETE.
Selain itu, untuk pengujian, kita akan menggunakan salah satu EndPoint yang menggunakan request POST.
POST http://localhost:8080/transfer?accountNo=1234&amount=100
Postman
Pertama, kita akan menjalankan pengujian dengan Postman tanpa mempertimbangkan token CSRF. Setelah itu, kita akan menjalankan pengujian lain dengan mengirimkan token CSRF dan menyiapkan Postman untuk mengirimkannya secara otomatis.
Pengujian Tanpa Token
Buka aplikasi Postman dan buat 1 buat 1 buah POST request.
Sekarang, kita jalankan permintaan tanpa mengirimkan token CSRF, dan kita akan mendapatkan response error 403 Forbidden:
Next, we’ll see how to fix that.
Setup Property Token (X-XSRF-TOKEN)
Di tab Header, tambahkan parameter baru bernama X-XSRF-TOKEN dan nilainya diatur ke xsrf-token. X-XSRF-TOKEN adalah header untuk CSRF, dan xsrf-token adalah variabel Environment yang akan kita definisikan setelahnya:
Environment Variable xsrf-token
Sekarang mari kita pergi ke Environment di sisi kiri dan buat Environment baru bernama DEV:
Di sisi kanan, kita definisikan variabel environment xsrf-token, sementara kolom lainnya biarkan kosong:
Mari kembali ke permintaan dan pilih Lingkungan DEV dari pojok kanan atas sehingga kita dapat menggunakan properti lingkungan yang kita tentukan:
Mari klik sekarang pada tab Tes. Kami akan menambahkan skrip berikut di sini:
Script
Script mengambil nilai cookie XSRF-TOKEN dan memberikannya ke environment xsrf-token. Sehingga, nilai apa pun untuk XSRF-TOKEN yang berasal dari server akan ditransfer ke properti header X-XSRF-TOKEN.
Pengujian
Sekarang jikat kita jalankan atau melakukan request, akan mendapatkan respons 200 OK:
Kesimpulan
Pada artikel ini, kita sudah melihat cara pengujian EndPoint aplikasi yang mengaktifkan perlindungan CSRF.
Kita menggunakan klien Postman untuk mengotomatiskan pengiriman token CSRF setiap kali kami menjalankan permintaan baru ke setiap EndPoint. Itu lebih efisien karena kita tidak perlu mengambil token CSRF secara manual dan mengaturnya di header permintaan.