TDCTF Academy Logo TDCTF ACADEMY

Cookies

Cookie adalah potongan data kecil yang dikirim server kepada klien (biasanya web browser) dan disimpan oleh klien. Cookie kemudian dikirim kembali ke server pada setiap permintaan berikutnya, memungkinkan server mengenali klien dan mempertahankan status.

Cookie memiliki sejumlah atribut yang mengontrol perilaku dan keamanannya:

  • Name - Nama unik untuk mengidentifikasi cookie.
  • Value - Data yang disimpan dalam cookie, biasanya berupa session identifier atau data kecil lainnya.
  • Domain - Menentukan domain mana yang dapat menerima cookie (misal example.com atau sub.example.com).
  • Path - Menentukan jalur URL mana di dalam domain yang dapat mengakses cookie (misal / berarti seluruh domain, /admin hanya halaman admin).
  • Expires / Max-Age - Menentukan masa berlaku cookie. Expires menetapkan tanggal dan waktu absolut, sedangkan Max-Age menetapkan umur cookie dalam detik. Tanpa atribut ini, cookie menjadi session cookie yang akan dihapus saat browser ditutup.
  • Secure - Cookie hanya boleh dikirim melalui koneksi HTTPS, bukan HTTP biasa. Ini mencegah pencurian cookie melalui serangan man-in-the-middle.
  • HttpOnly - Cookie tidak dapat diakses oleh skrip JavaScript sisi klien melalui document.cookie. Ini melindungi cookie dari serangan Cross-Site Scripting (XSS).
  • SameSite - Mengontrol apakah cookie dikirim pada permintaan lintas situs. Nilai yang tersedia:
    • Strict - Cookie tidak pernah dikirim pada permintaan lintas situs.
    • Lax - Cookie dikirim pada navigasi tingkat atas (misal mengklik tautan) tetapi tidak pada permintaan lintas situs lainnya.
    • None - Cookie dikirim pada semua permintaan, termasuk lintas situs (harus disertai atribut Secure).

Session vs Persistent Cookies

Session Cookies - Hanya disimpan di memori browser dan dihapus saat browser ditutup. Tidak memiliki atribut Expires atau Max-Age. Cocok untuk menyimpan session ID sementara selama pengguna aktif.

Persistent Cookies - Tetap tersimpan di disk meskipun browser ditutup, hingga mencapai waktu kedaluwarsa yang ditentukan. Digunakan untuk "ingat saya", preferensi pengguna, atau pelacakan jangka panjang.

Beberapa mekanisme keamanan utama pada cookie:

HttpOnly - Mencegah XSS Access

Atribut HttpOnly melarang JavaScript mengakses cookie melalui document.cookie. Jika seorang penyerang berhasil menyuntikkan skrip XSS ke halaman web, ia tetap tidak dapat membaca cookie yang ditandai HttpOnly. Ini adalah pertahanan penting untuk melindungi session cookie yang berisi token autentikasi.

Secure - Mencegah HTTP

Atribut Secure memastikan cookie hanya dikirim melalui saluran HTTPS terenkripsi. Jika halaman dimuat melalui HTTP biasa, cookie dengan atribut Secure tidak akan dikirim. Ini mencegah penyerang yang berada di jaringan yang sama (misal WiFi publik) mencegat cookie melalui serangan man-in-the-middle atau packet sniffing.

SameSite - Mencegah CSRF

Atribut SameSite melindungi dari serangan Cross-Site Request Forgery (CSRF). Dengan nilai Strict atau Lax, browser tidak akan mengirim cookie autentikasi pada permintaan yang berasal dari situs lain. Misalnya, jika pengguna sudah login ke bank.com dan mengunjungi evil.com yang memuat formulir yang dikirim ke bank.com, cookie autentikasi tidak akan disertakan dalam permintaan tersebut.

Pencurian cookie adalah salah satu ancaman keamanan web yang paling umum. Penyerang dapat mencuri cookie melalui:

  • Cross-Site Scripting (XSS) - Menyuntikkan skrip jahat untuk membaca document.cookie (dicegah dengan HttpOnly).
  • Man-in-the-Middle (MITM) - Mencegat lalu lintas jaringan tidak terenkripsi (dicegah dengan Secure dan HTTPS).
  • Cross-Site Request Forgery (CSRF) - Memanfaatkan cookie yang dikirim secara otomatis untuk melakukan aksi tanpa sepengetahuan pengguna (dicegah dengan SameSite).
  • Session Hijacking - Mencuri session ID dari cookie untuk menyamar sebagai pengguna yang sah.

Cookie yang dicuri dapat digunakan untuk session replay attack, di mana penyerang menggunakan cookie tersebut untuk mengakses akun korban tanpa perlu mengetahui password.

PADA HALAMAN INI