Pengantar
Sebagian besar aplikasi web modern menggunakan session untuk mengenali pengguna yang telah berhasil melakukan login. Session memungkinkan pengguna tetap terautentikasi tanpa harus memasukkan username dan password setiap kali berpindah halaman. Namun, jika mekanisme pengelolaan session tidak diterapkan dengan benar, aplikasi dapat menjadi rentan terhadap berbagai serangan, salah satunya adalah Session Fixation.
Session Fixation merupakan teknik serangan yang memungkinkan penyerang memaksa korban menggunakan Session ID yang telah diketahui sebelumnya. Setelah korban berhasil login menggunakan Session ID tersebut, penyerang dapat memanfaatkan Session ID yang sama untuk mengambil alih sesi pengguna tanpa harus mengetahui kata sandinya.
Artikel ini membahas pengertian Session Fixation, cara kerja serangan, dampaknya terhadap keamanan aplikasi web, serta langkah-langkah yang dapat dilakukan untuk mencegahnya.
Apa Itu Session Fixation?
Session Fixation adalah jenis serangan keamanan pada aplikasi web di mana penyerang membuat atau memperoleh sebuah Session ID, kemudian memaksa korban menggunakan Session ID tersebut sebelum melakukan proses autentikasi.
Jika aplikasi tidak membuat Session ID baru setelah pengguna berhasil login, maka Session ID yang telah diketahui penyerang tetap berlaku. Akibatnya, penyerang dapat menggunakan Session ID tersebut untuk mengakses akun korban.
Menurut OWASP, Session Fixation terjadi ketika aplikasi gagal mengganti Session ID setelah proses autentikasi berhasil dilakukan (dikutip dari https://owasp.org/www-community/attacks/Session_fixation).
baca juga : Anti-Analysis Tricks: Teknik yang Digunakan Malware untuk Menghindari Analisis Keamanan
Bagaimana Cara Kerja Session Fixation?
Secara umum, serangan Session Fixation berlangsung melalui tahapan berikut:
- Penyerang memperoleh atau membuat Session ID yang valid.
- Session ID tersebut dikirim kepada korban, misalnya melalui tautan, parameter URL, atau cookie yang telah dimodifikasi.
- Korban membuka aplikasi menggunakan Session ID tersebut.
- Korban melakukan login seperti biasa.
- Aplikasi tidak membuat Session ID baru setelah autentikasi berhasil.
- Penyerang menggunakan Session ID yang sama untuk mengakses akun korban.
Karena Session ID tetap digunakan setelah login, sistem menganggap penyerang sebagai pengguna yang sah.
Mengapa Session Fixation Berbahaya?
Session Fixation tidak mencuri username atau password secara langsung. Sebaliknya, serangan ini memanfaatkan kelemahan dalam pengelolaan session.
Beberapa risiko yang dapat ditimbulkan antara lain:
- Pengambilalihan akun (Account Takeover).
- Akses tidak sah terhadap data pengguna.
- Penyalahgunaan hak akses aplikasi.
- Kebocoran informasi sensitif.
- Pelanggaran keamanan organisasi.
Dalam banyak kasus, korban tidak menyadari bahwa sesi login mereka telah dibajak.

Perbedaan Session Fixation dan Session Hijacking
Kedua serangan ini sama-sama berkaitan dengan Session ID, tetapi memiliki mekanisme yang berbeda.
| Aspek | Session Fixation | Session Hijacking |
|---|---|---|
| Waktu serangan | Sebelum pengguna login | Setelah pengguna login |
| Cara memperoleh Session ID | Penyerang menentukan Session ID | Penyerang mencuri Session ID |
| Target utama | Proses autentikasi | Session yang sudah aktif |
| Teknik umum | URL, Cookie, Link | Sniffing, XSS, Malware |
Memahami perbedaannya membantu pengembang memilih strategi mitigasi yang tepat.
Bagaimana Penyerang Menyisipkan Session ID?
Ada beberapa metode yang dapat digunakan penyerang untuk membuat korban menggunakan Session ID tertentu.
Melalui URL
Penyerang mengirimkan tautan yang berisi Session ID sebagai parameter.
Contoh sederhana:
https://contoh-aplikasi.com/login?sessionid=ABC123
Jika aplikasi menerima Session ID dari URL tanpa validasi yang baik, peluang terjadinya Session Fixation akan meningkat.
Melalui Cookie
Pada beberapa kondisi, penyerang dapat memanipulasi cookie agar browser korban menggunakan Session ID tertentu.
baca juga : Chrome Headless Mode: Tingkatkan Kecepatan Testing hingga 2x Lipat
Melalui Serangan XSS
Kerentanan Cross-Site Scripting (XSS) dapat dimanfaatkan untuk menyisipkan atau memodifikasi Session ID yang digunakan browser.
Melalui Rekayasa Sosial
Korban dapat diarahkan membuka tautan tertentu melalui email phishing atau pesan instan sehingga tanpa sadar menggunakan Session ID yang telah disiapkan penyerang.
Faktor yang Menyebabkan Session Fixation
Beberapa kesalahan implementasi yang sering menjadi penyebab antara lain:
- Session ID tidak diganti setelah login.
- Session ID dapat ditentukan melalui URL.
- Cookie session tidak diamankan.
- Tidak adanya mekanisme validasi session.
- Session memiliki masa aktif yang terlalu lama.
Kesalahan-kesalahan tersebut meningkatkan risiko pengambilalihan sesi pengguna.
Cara Mencegah Session Fixation
Regenerasi Session ID Setelah Login
Langkah paling penting adalah membuat Session ID baru setiap kali autentikasi berhasil.
Dengan cara ini, Session ID lama menjadi tidak berlaku sehingga tidak dapat digunakan oleh penyerang.
Gunakan Cookie yang Aman
Konfigurasikan cookie session menggunakan atribut:
- HttpOnly
- Secure
- SameSite
Konfigurasi tersebut membantu mengurangi risiko penyalahgunaan Session ID.
Hindari Penggunaan Session ID pada URL
Session ID sebaiknya hanya disimpan dalam cookie, bukan sebagai parameter URL yang mudah dibagikan atau dicatat pada log.
Terapkan Session Timeout
Session yang tidak aktif sebaiknya berakhir secara otomatis setelah jangka waktu tertentu.
Pendekatan ini mengurangi peluang penyalahgunaan Session yang telah ditinggalkan pengguna.
Gunakan HTTPS
Komunikasi yang dienkripsi menggunakan HTTPS membantu melindungi Session ID selama proses transmisi.
Praktik Terbaik dalam Pengelolaan Session
Untuk meningkatkan keamanan aplikasi web, pengembang dapat menerapkan beberapa praktik berikut:
- Regenerasi Session ID setelah login.
- Regenerasi Session ID setelah perubahan hak akses.
- Hapus Session saat pengguna logout.
- Gunakan Session ID yang panjang dan acak.
- Hindari penyimpanan Session ID pada URL.
- Terapkan HTTPS di seluruh halaman aplikasi.
Langkah-langkah tersebut merupakan bagian penting dari pengelolaan session yang aman.
Pentingnya Session Management dalam Keamanan Aplikasi
Session merupakan komponen utama dalam proses autentikasi aplikasi web. Kesalahan kecil dalam pengelolaannya dapat membuka peluang bagi penyerang untuk mengambil alih akun tanpa perlu mengetahui kredensial pengguna. Oleh karena itu, pengelolaan Session ID harus menjadi perhatian utama sejak tahap pengembangan aplikasi.
Menurut OWASP Session Management Cheat Sheet, aplikasi web sebaiknya selalu menghasilkan Session ID baru setelah proses login berhasil, menggunakan cookie yang aman, serta menerapkan masa berlaku session yang sesuai untuk meminimalkan risiko penyalahgunaan (dikutip dari https://cheatsheetseries.owasp.org/cheatsheets/Session_Management_Cheat_Sheet.html).
baca juga : Bahaya SUID Bit: Mengapa Hak Akses Kecil Ini Bisa Menjadi Celah Keamanan Serius?
Kesimpulan
Session Fixation adalah serangan yang memanfaatkan kelemahan dalam pengelolaan Session ID untuk mengambil alih sesi pengguna setelah proses login. Berbeda dengan Session Hijacking yang mencuri Session ID aktif, Session Fixation memaksa korban menggunakan Session ID yang telah diketahui penyerang sebelum autentikasi dilakukan.
Risiko serangan ini dapat diminimalkan dengan melakukan regenerasi Session ID setelah login, menggunakan cookie yang aman, menghindari penggunaan Session ID pada URL, menerapkan HTTPS, serta mengikuti praktik terbaik dalam manajemen session. Dengan pengelolaan session yang tepat, aplikasi web akan lebih terlindungi dari ancaman pembajakan sesi.











1 Comment
ASLR (Address Space Layout Randomization): Lapisan Pertahanan yang Membuat Eksploitasi Memori Jauh Lebih Sulit - buletinsiber.com
3 weeks ago[…] baca juga : Session Fixation: Ancaman Tersembunyi yang Bisa Membajak Sesi Login Pengguna […]