model secure-by-default untuk cookie, diaktifkan oleh sistem klasifikasi cookie yang baru (
). Inisiatif ini adalah bagian dari
kami untuk meningkatkan privasi dan keamanan di seluruh web.
Chrome berencana untuk mengimplementasikan model baru ini dengan Chrome 80 pada bulan Februari 2020. Mozilla dan Microsoft juga telah menunjukkan maksud untuk mengimplementasikan model baru di Firefox dan Edge, sesuai jadwal mereka. Penting bagi developer yang mengelola cookie untuk menilai kesiapan mereka hari ini. Entri blog ini memberikan garis besar dari konsep ini; silakan lihat
Situs biasanya mengintegrasikan layanan eksternal untuk iklan, rekomendasi konten, widget pihak ketiga, sematan sosial dan fitur lainnya. Saat Anda menjelajah web, layanan eksternal ini mungkin menyimpan cookie di browser dan kemudian mengakses cookie itu untuk memberikan pengalaman yang "personal" atau "custom" untuk mengukur interaksi audience. Setiap cookie memiliki domain yang terkait dengannya. Jika domain yang terkait dengan cookie cocok dengan layanan eksternal dan bukan situs di kolom URL pengguna, ini dianggap sebagai konteks cross-site atau “pihak ketiga”.
Kasus penggunaan cross-site yang kurang kentara mencakup situasi di mana entity yang memiliki beberapa situs menggunakan cookie di seluruh properti tersebut. Meskipun entity yang sama memiliki cookie dan situs, ini masih dianggap sebagai konteks cross-site atau “pihak ketiga” ketika domain cookie tidak cocok dengan situs dari mana cookie diakses.
(atau “pihak pertama”) terjadi ketika domain cookie cocok dengan domain situs di kolom URL pengguna. Cookie same-site biasanya digunakan agar orang tetap login ke situs individu, mengingat preferensinya dan mendukung analytics situs.
|
Ketika sumber daya halaman web mengakses cookie yang cocok dengan situs yang dikunjungi pengguna, ini adalah konteks same-site atau “pihak pertama”.
|
Model Baru untuk Transparansi dan Keamanan Cookie
Hari ini, bila cookie hanya ditujukan untuk diakses dalam konteks pihak pertama, developer memiliki opsi untuk menerapkan salah satu dari dua setelan (
SameSite=Lax atau
SameSite=Strict) untuk mencegah akses eksternal. Namun, sangat sedikit developer yang mengikuti praktik yang disarankan ini, sehingga banyak cookie same-site terekspos ancaman seperti serangan
Cross-Site Request Forgery.
Untuk menjaga lebih banyak situs dan penggunanya, model secure-by-default terbaru mengasumsikan bahwa semua cookie harus dilindungi dari akses eksternal kecuali ada ketentuan lain. Developer harus menggunakan setelan cookie baru,
SameSite=None, guna menandai cookie untuk akses cross-site. Ketika terdapat atribut
SameSite=None, atribut
Secure tambahan harus digunakan sehingga cookie cross-site hanya bisa diakses melalui koneksi HTTPS. Ini tidak akan mengurangi semua risiko yang terkait dengan akses lintas-situs, tetapi akan memberikan perlindungan terhadap serangan jaringan.
Selain manfaat keamanan langsung, deklarasi eksplisit cookie cross-site mengaktifkan transparansi dan pilihan pengguna yang lebih banyak. Misalnya, browser dapat menawarkan kepada pengguna kontrol yang sangat baik untuk mengelola cookie yang hanya diakses oleh satu situs secara terpisah dari cookie yang diakses di beberapa situs.
Pemberlakuan di Chrome Dimulai pada Februari 2020
Bersama dengan Chrome 80 pada bulan Februari, Chrome akan menganggap cookie yang tidak mendeklarasikan nilai SameSite sebagai cookie
SameSite=Lax. Hanya cookie dengan setelan
SameSite=None; Secure yang akan tersedia untuk akses eksternal, asalkan mereka diakses dari koneksi aman. Pelacak Chrome Platform Status untuk
SameSite=None dan
Secure akan terus diperbarui dengan informasi peluncuran terbaru.
Mozilla telah menegaskan dukungannya terhadap model klasifikasi cookie yang baru dengan
maksud untuk mengimplementasikan persyaratan
SameSite=None; Secure untuk cookie cross-site di Firefox. Microsoft baru-baru ini
mengumumkan rencana untuk mulai mengimplementasikan model yang dimulai sebagai eksperimen di Microsoft Edge 80.
Cara Mempersiapkan; Kompleksitas yang Diketahui
Jika Anda mengelola cookie cross-site, Anda harus menerapkan setelan SameSite=None; Secure untuk cookie tersebut. Implementasi seharusnya mudah bagi kebanyakan developer, tetapi kami sangat menyarankan Anda untuk mulai mengujinya sekarang untuk mengidentifikasi kompleksitas dan kasus khusus, seperti berikut:
- Belum semua bahasa dan library mendukung nilai None, mengharuskan developer untuk menyetel header cookie secara langsung. Repositori Github ini menyediakan petunjuk untuk mengimplementasikan SameSite=None; Secure dalam berbagai bahasa, library, dan framework.
- Beberapa browser, termasuk beberapa versi Chrome, Safari dan UC Browser, mungkin menangani nilai None dengan cara yang tidak diharapkan, mengharuskan developer untuk membuat kode pengecualian bagi klien tersebut. Ini mencakup Android WebView yang didukung oleh Chrome versi lama. Berikut adalah daftar klien yang tidak kompatibel.
- Developer aplikasi disarankan untuk mendeklarasikan setelan cookie SameSite yang sesuai untuk Android WebView berdasarkan versi Chrome yang kompatibel dengan nilai None, baik untuk cookie yang diakses melalui header HTTP(S) dan melalui CookieManager API Android WebView, meskipun model baru ini tidak akan diterapkan di Android WebView hingga nanti.
- Administrator TI perusahaan mungkin perlu menerapkan kebijakan khusus untuk sementara waktu mengembalikan Chrome Browser ke perilaku lama jika beberapa layanan seperti sistem masuk tunggal atau aplikasi internal tidak siap untuk peluncuran bulan Februari.
- Jika Anda memiliki cookie yang Anda akses dalam konteks pihak pertama dan ketiga, Anda dapat mempertimbangkan penggunaan cookie terpisah untuk mendapatkan manfaat keamanan SameSite=Lax dalam konteks pihak pertama.
Penjelasan Cookie SameSite menawarkan panduan khusus untuk situasi di atas, serta saluran untuk melaporkan masalah dan pertanyaan.
Untuk menguji efek perilaku Chrome baru di situs atau cookie yang Anda kelola, Anda bisa membuka chrome://flags di Chrome 76+ dan mengaktifkan eksperimen “SameSite by default cookies” dan “Cookies without SameSite must be secure”. Selain itu, eksperimen ini akan diaktifkan secara otomatis untuk subset pengguna Chrome 79 Beta. Beberapa pengguna Beta dengan eksperimen diaktifkan bisa mengalami masalah inkompatibilitas dengan layanan yang belum mendukung model baru ini; pengguna dapat memilih untuk tidak ikut eksperimen Beta dengan membuka chrome://flags dan menonaktifkannya.
Jika Anda mengelola cookie yang hanya diakses dalam konteks situs yang sama (cookie same-site), Anda tidak perlu melakukan tindakan apa pun; Chrome akan secara otomatis mencegah cookie tersebut diakses oleh entitas eksternal, bahkan jika atribut SameSite hilang atau tidak ada nilai yang disetel. Namun kami sangat menyarankan Anda untuk menerapkan nilai SameSite yang sesuai (
Lax atau
Strict) dan tidak bergantung pada perilaku browser default karena tidak semua browser melindungi cookie same-site secara default.
Yang terakhir, jika Anda mengkhawatirkan kesiapan vendor dan orang lain yang menyediakan layanan ke situs, Anda bisa memeriksa peringatan konsol Developer Tools di Chrome 77+ bila halaman yang berisi cookie cross-site kehilangan setelan yang dibutuhkan:
Beberapa penyedia (termasuk beberapa layanan Google) akan menerapkan perubahan yang diperlukan pada bulan-bulan mendatang menjelang Chrome 80 pada bulan Februari; Anda mungkin perlu menghubungi mitra Anda untuk mengonfirmasi kesiapannya.