Cross-Domain Referer Leakage adalah kondisi ketika header Referer (header HTTP yang memberi tahu “dari halaman mana user datang”) ikut mengirimkan informasi sensitif ke website lain (domain berbeda).
Informasi sensitif yang bisa bocor misalnya:
-
Session ID
-
Token login
-
Token reset password
-
Parameter rahasia dalam URL
-
Data pribadi dalam query string
Ketika user berpindah dari domainA.com ke domainB.com, browser otomatis mengirim:
Referer: https://domainA.com/somepage?session=abc123xyz
Jika URL itu berisi session token atau parameter penting, maka domainB.com mengetahui seluruh data sensitif itu.
Contoh Kasus Nyata
Misalnya sebuah website e-commerce menampilkan gambar dari website eksternal (misalnya imgfreeupload.xyz).
Di halaman itu, URL user mengandung token session:
https://shopku.com/profile?session=ABC123TOKEN
Lalu browser memuat gambar dari domain lain:
https://imgfreeupload.xyz/image.png
Browser otomatis mengirim header:
Referer: https://shopku.com/profile?session=ABC123TOKEN
Akibatnya:
Domain imgfreeupload.xyz (yang mungkin dikendalikan penyerang) mendapat akses ke:
-
token session user
-
data rahasia yang ada di URL
Penyerang dapat:
-
membajak session
-
masuk sebagai pengguna lain
mengambil alih akun korban
Mengapa Ini Berbahaya?
Karena:
-
Browser otomatis mengirim header Referer
-
Banyak aplikasi masih menaruh data penting di URL (query string)
-
Domain eksternal bisa dikontrol penyerang
Token atau session ID yang bocor = account takeover
Solusi: Mengatur Referer-Policy
Website bisa mengontrol perilaku Referer menggunakan meta tag atau header HTTP.
1. no-referrer
Tidak pernah mengirim Referer.
Keamanan paling kuat.
Contoh:
Referrer-Policy: no-referrer
Semua request ke domain lain → tidak ada informasi referer yang dikirim.
2. same-origin
Hanya kirim Referer ketika pindah halaman dalam domain yang sama.
Pindah ke domain lain → Referer tidak dikirim.
Referrer-Policy: same-origin 3. strict-origin-when-cross-origin (paling umum dan direkomendasikan)
Untuk domain lain → hanya mengirim origin saja, tanpa path, query, atau token.
Contoh:
https://shopku.com/profile?session=ABC123TOKEN
Jika user menuju domain lain, browser hanya mengirim:
Referer: https://shopku.com/
Tidak ada token atau query string yang bocor.
Kesimpulan
Cross-Domain Referer Leakage terjadi ketika:
-
URL mengandung data sensitif
-
User memuat resource dari domain lain
-
Browser mengirim header Referer → bocor ke domain lain
Ini bisa menyebabkan pengambilalihan akun pengguna.
Solusi utama: gunakan Referrer-Policy seperti:
-
no-referrer -
same-origin strict-origin-when-cross-origin(paling seimbang)

0 Comments:
Posting Komentar