DEMO SERANGAN CSRF YUK !!
Cross-Site Request Forgery (CSRF) adalah salah satu jenis serangan web yang memungkinkan penyerang untuk memaksa pengguna melakukan tindakan yang tidak diinginkan pada aplikasi web di mana mereka telah diautentikasi. Artikel ini akan menjelaskan bagaimana menambahkan perlindungan terhadap serangan CSRF dengan menggunakan token CSRF pada aplikasi web.
Cara Kerja CSRF pada Pengguna yang Login:
Pengguna Login: Pengguna login ke situs web A dan mendapatkan cookie sesi yang sah.
Penyerang Menyiapkan Serangan: Penyerang membuat halaman web berbahaya atau email dengan permintaan berbahaya ke situs web A.
Pengguna Terkena Serangan: Pengguna mengakses halaman web berbahaya atau membuka email dengan permintaan berbahaya.
Permintaan Tidak Sah Dikirim: Karena pengguna masih login, permintaan berbahaya dikirim ke server A menggunakan cookie sesi pengguna, sehingga terlihat sah.
Sebelum Update: Script Rentan Terhadap Serangan CSRF
Berikut adalah contoh formulir transfer uang yang rentan terhadap serangan CSRF:
index.html
transfer.php
Pada contoh di atas, tidak ada perlindungan terhadap serangan CSRF. Penyerang dapat membuat formulir yang mengirimkan permintaan POST ke `transfer.php` tanpa sepengetahuan pengguna.
Hasil user
Contoh Serangan CSRF
Berikut adalah contoh script yang dapat digunakan oleh penyerang untuk mengeksploitasi kelemahan CSRF pada aplikasi:
csrf_attack.html:
Hasil attacker
Sesudah Update: Script Terlindungi dari Serangan CSRF
Untuk melindungi aplikasi web dari serangan CSRF, kita dapat menambahkan token CSRF pada formulir dan memverifikasinya di sisi server.
1. Mengubah `index.html` menjadi `index.php`:
Karena `index.html` adalah file HTML statis, kita perlu mengubahnya menjadi file PHP untuk bisa menghasilkan token CSRF dinamis.
2. Memastikan Token CSRF Diterima dan Diverifikasi di `transfer.php`:
3. Memastikan Permintaan POST Terkirim dengan Token yang Benar:
Pastikan bahwa Anda mengakses file `index.php` melalui server lokal Anda, misalnya `http://localhost/csrf/index.php`, bukan `index.html`.
4. Memastikan Tidak Ada Cache yang Mengganggu:
Bersihkan cache browser atau gunakan mode incognito untuk memastikan tidak ada cache yang mengganggu proses pengiriman token CSRF.
Dengan langkah-langkah di atas, token CSRF seharusnya dihasilkan dan diverifikasi dengan benar, sehingga menghindari kesalahan "Invalid CSRF token". Pastikan juga bahwa session bekerja dengan baik dan tidak ada konflik di server lokal Anda.
Hasil user
Hasil attacker
Dampak dari Serangan CSRF
Serangan CSRF memungkinkan penyerang untuk membuat pengguna yang sah melakukan tindakan yang tidak diinginkan tanpa sepengetahuan mereka. Dampak dari serangan ini dapat sangat merugikan, termasuk:
Transaksi Finansial Tidak Sah:
- Penyerang dapat memaksa pengguna untuk melakukan transfer uang atau pembelian online tanpa sepengetahuan pengguna.
Pengubahan Informasi Akun:
- Informasi pribadi pengguna, seperti alamat email, kata sandi, atau preferensi akun, dapat diubah oleh penyerang.
Penyalahgunaan Hak Istimewa:
- Pengguna dengan hak administratif dapat dipaksa untuk membuat perubahan kritis pada sistem atau menambahkan pengguna dengan hak istimewa tinggi.
Pencurian Identitas:
- Informasi pribadi dan kredensial pengguna dapat disalahgunakan untuk berbagai bentuk penipuan dan pencurian identitas.
Kerugian Reputasi:
- Serangan CSRF pada aplikasi web yang dikelola dapat merusak reputasi bisnis dan mengurangi kepercayaan pengguna.
Kesimpulan
Menambahkan perlindungan CSRF pada aplikasi web sangat penting untuk menghindari tindakan tidak sah yang dapat membahayakan pengguna dan integritas aplikasi. Dengan menggunakan token CSRF, kita dapat memastikan bahwa setiap permintaan POST yang diterima oleh server adalah sah dan berasal dari sumber yang valid.
Selalu pastikan untuk menerapkan praktik keamanan terbaik dalam pengembangan aplikasi web untuk melindungi pengguna dan data mereka.
Tidak ada komentar: