Apa Itu Cross-Domain Referer Leakage?

  

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