Sebelum memulai:
- Jika Anda tidak yakin dengan perbedaan antara "situs" dan "asal", lihat Memahami "situs yang sama" dan "asal yang sama".
- Header
Referer
tidak memiliki huruf R, karena salah ejaan asli dalam spesifikasi. HeaderReferrer-Policy
danreferrer
dalam JavaScript dan DOM dieja dengan benar.
Ringkasan
- Browser berkembang ke arah kebijakan perujuk default yang meningkatkan privasi, untuk memberikan penggantian yang baik saat situs tidak memiliki kebijakan yang ditetapkan.
- Chrome berencana untuk mengaktifkan
strict-origin-when-cross-origin
secara bertahap sebagai kebijakan default di versi 85; hal ini dapat memengaruhi kasus penggunaan yang mengandalkan nilai perujuk dari origin lain. - Ini adalah setelan default baru, tetapi situs masih dapat memilih kebijakan yang mereka inginkan.
- Untuk mencoba perubahan di Chrome, aktifkan tanda di
chrome://flags/#reduced-referrer-granularity
. Anda juga dapat melihat demo ini untuk melihat perubahan yang dilakukan. - Selain kebijakan perujuk, cara browser menangani perujuk dapat berubah—jadi, perhatikan hal ini.
Apa yang berubah dan alasannya?
Permintaan HTTP dapat menyertakan header Referer
opsional, yang menunjukkan
asal atau URL halaman web tempat permintaan dibuat. Header Referer-Policy
menentukan data
yang tersedia di header Referer
, dan untuk navigasi dan iframe di
document.referrer
tujuan.
Informasi yang dikirim dalam header Referer
dalam permintaan dari situs Anda ditentukan
oleh header Referrer-Policy
yang Anda tetapkan.

Jika tidak ada kebijakan yang ditetapkan, setelan default browser akan digunakan. Situs sering kali mengikuti setelan default browser.
Untuk navigasi dan iframe, data yang ada di header Referer
juga dapat diakses melalui
JavaScript menggunakan document.referrer
.
Hingga baru-baru ini,
no-referrer-when-downgrade
telah menjadi kebijakan default yang tersebar luas di seluruh browser. Namun, sekarang banyak browser berada dalam beberapa tahap
beralih ke setelan default yang lebih meningkatkan privasi.
Chrome berencana mengalihkan kebijakan defaultnya dari no-referrer-when-downgrade
ke
strict-origin-when-cross-origin
, mulai versi 85.
Artinya, jika tidak ada kebijakan yang ditetapkan untuk situs Anda, Chrome akan menggunakan
strict-origin-when-cross-origin
secara default. Perhatikan bahwa Anda masih dapat menetapkan kebijakan pilihan Anda;
perubahan ini hanya akan memengaruhi situs yang tidak memiliki kebijakan yang ditetapkan.
Apa maksud dari perubahan ini?
strict-origin-when-cross-origin
menawarkan lebih banyak privasi. Dengan kebijakan ini, hanya
origin yang dikirim dalam header Referer
permintaan lintas origin.
Hal ini mencegah kebocoran data pribadi yang dapat diakses dari bagian lain URL lengkap seperti jalur dan string kueri.

Contoh:
Permintaan lintas origin, dikirim dari https://site-one.example/stuff/detail?tag=red ke https://site-two.example/…:
- Dengan
no-referrer-when-downgrade
: Referer: https://site-one.example/stuff/detail?tag=red. - Dengan
strict-origin-when-cross-origin
: Referer: https://site-one.example/.
Apa yang tetap sama?
- Seperti
no-referrer-when-downgrade
,strict-origin-when-cross-origin
aman: tidak ada perujuk (headerReferer
dandocument.referrer
) saat permintaan dibuat dari origin HTTPS (aman) ke origin HTTP (tidak aman). Dengan cara ini, jika situs Anda menggunakan HTTPS (jika tidak, prioritaskan), URL situs Anda tidak akan bocor dalam permintaan non-HTTPS karena siapa pun di jaringan dapat melihatnya, sehingga hal ini akan mengekspos pengguna Anda ke serangan man-in-the-middle. - Dalam origin yang sama, nilai header
Referer
adalah URL lengkap.
Misalnya: Permintaan dengan origin yang sama, dikirim dari https://site-one.example/stuff/detail?tag=red ke https://site-one.example/…:
- Dengan
strict-origin-when-cross-origin
: Referer: https://site-one.example/stuff/detail?tag=red
Apa dampaknya?
Berdasarkan diskusi dengan browser lain dan eksperimen Chrome sendiri yang dijalankan di Chrome 84, kerusakan yang terlihat oleh pengguna diperkirakan akan terbatas.
Logging atau analisis sisi server yang mengandalkan ketersediaan URL perujuk lengkap kemungkinan akan terpengaruh oleh pengurangan tingkat perincian dalam informasi tersebut.
Apa yang perlu Anda lakukan?
Chrome berencana untuk mulai meluncurkan kebijakan perujuk default baru di versi 85 (Juli 2020 untuk versi beta, Agustus 2020 untuk versi stabil). Lihat status di Entri status Chrome.
Memahami dan mendeteksi perubahan
Untuk memahami perubahan default baru dalam praktiknya, Anda dapat melihat demo ini.
Anda juga dapat menggunakan demo ini untuk mendeteksi kebijakan yang diterapkan di instance Chrome yang Anda jalankan.
Uji perubahan tersebut, dan cari tahu apakah perubahan ini akan memengaruhi situs Anda
Anda sudah dapat mencoba perubahan ini mulai dari Chrome 81: buka
chrome://flags/#reduced-referrer-granularity
di Chrome dan aktifkan flag. Jika tanda ini
diaktifkan, semua situs tanpa kebijakan akan menggunakan default strict-origin-when-cross-origin
baru.

Sekarang Anda dapat memeriksa perilaku situs dan backend.
Hal lain yang dapat dilakukan untuk mendeteksi dampaknya adalah memeriksa apakah codebase situs Anda menggunakan perujuk—baik
melalui header Referer
permintaan masuk di server, atau dari document.referrer
di
JavaScript.
Fitur tertentu di situs Anda mungkin rusak atau berperilaku berbeda jika Anda menggunakan perujuk permintaan dari asal lain ke situs Anda (lebih khusus jalur dan/atau string kueri) DAN asal ini menggunakan kebijakan perujuk default browser (yaitu tidak memiliki kebijakan yang ditetapkan).
Jika hal ini memengaruhi situs Anda, pertimbangkan alternatifnya
Jika menggunakan perujuk untuk mengakses jalur lengkap atau string kueri untuk permintaan ke situs, Anda memiliki beberapa opsi:
- Gunakan teknik dan header alternatif seperti
Origin
danSec-fetch-Site
untuk perlindungan CSRF, logging, dan kasus penggunaan lainnya. Lihat Referer dan Referrer-Policy: praktik terbaik. - Anda dapat menyelaraskan kebijakan tertentu dengan partner jika diperlukan dan transparan bagi pengguna.
Kontrol akses—saat perujuk digunakan oleh situs untuk memberikan akses tertentu ke resource mereka
ke origin lain—mungkin merupakan kasus seperti itu meskipun dengan perubahan Chrome, origin akan tetap
dibagikan di Header
Referer
(dan didocument.referrer
).
Perhatikan bahwa sebagian besar browser bergerak ke arah yang sama dalam hal perujuk (lihat browser default dan evolusinya di Referer dan Referrer-Policy: praktik terbaik.
Terapkan kebijakan yang jelas dan meningkatkan privasi di seluruh situs Anda
Referer
apa yang harus dikirim dalam permintaan yang berasal dari situs Anda, yaitu kebijakan apa yang harus Anda tetapkan untuk situs Anda?
Meskipun dengan mempertimbangkan perubahan Chrome, sebaiknya tetap tetapkan kebijakan yang jelas dan meningkatkan privasi
seperti strict-origin-when-cross-origin
atau yang lebih ketat saat ini.
Hal ini melindungi pengguna dan membuat situs Anda berperilaku lebih dapat diprediksi di seluruh browser. Umumnya, hal ini memberi Anda kontrol —bukan membuat situs Anda bergantung pada setelan default browser.
Lihat Referrer dan Referrer-Policy: praktik terbaik untuk mengetahui detail tentang cara menetapkan kebijakan.
Tentang Chrome Enterprise
Kebijakan perusahaan Chrome
ForceLegacyDefaultReferrerPolicy
tersedia untuk administrator IT yang ingin memaksa kebijakan perujuk default sebelumnya, yaitu
no-referrer-when-downgrade
, di lingkungan perusahaan. Hal ini memberi perusahaan waktu tambahan untuk
menguji dan mengupdate aplikasi mereka.
Kebijakan ini akan dihapus di Chrome 88.
Kirim masukan
Apakah Anda memiliki masukan atau ingin melaporkan sesuatu? Berikan masukan tentang niat Chrome untuk dikirim, atau tweet pertanyaan Anda di @maudnals.
Kami mengucapkan terima kasih banyak atas kontribusi dan masukan dari semua peninjau, terutama Kaustubha Govind, David Van Cleve, Mike West, Sam Dutton, Rowan Merewood, Jxck, dan Kayce Basques.