Kamis, 16 Januari 2020
Ini adalah postingan silang dari blog developer Chromium, yang secara khusus membahas pengaruh perubahan pada Chrome terhadap cara kerja situs Anda untuk pengguna pada masa mendatang.
Pada bulan Mei, Chrome mengumumkan model yang aman secara default untuk cookie, yang diaktifkan oleh sistem klasifikasi cookie baru (spesifikasi). Inisiatif ini adalah bagian dari upaya berkelanjutan kami dalam meningkatkan privasi dan keamanan di seluruh web.
Chrome berencana menerapkan model baru tersebut ke Chrome 80 pada bulan Februari 2020. Mozilla dan Microsoft juga telah berniat untuk menerapkan model baru ini di Firefox dan Edge, menurut jadwal masing-masing. Meskipun perubahan Chrome masih beberapa bulan lagi, penting bagi developer yang mengelola cookie untuk menilai kesiapan mereka sekarang juga. Postingan blog ini menguraikan konsep secara umum; lihat SameSite Cookies Explained di web.dev untuk panduan developer.
Memahami Konteks Cookie Lintas Situs dan Cookie Situs yang Sama
Situs biasanya mengintegrasikan layanan eksternal untuk iklan, rekomendasi konten, widget pihak ketiga, sematan sosial, dan fitur lainnya. Saat Anda menjelajahi web, layanan eksternal ini dapat menyimpan cookie di browser Anda, lalu mengakses cookie tersebut untuk memberikan pengalaman yang dipersonalisasi atau mengukur interaksi audiens. Setiap cookie memiliki domain yang terkait dengannya. Jika domain yang terkait dengan cookie cocok dengan layanan eksternal dan bukan situs di kolom URL pengguna, hal ini dianggap sebagai konteks lintas situs (atau "pihak ketiga").
Kasus penggunaan lintas situs yang kurang jelas mencakup situasi saat entitas yang memiliki beberapa situs menggunakan cookie di seluruh properti tersebut. Meskipun entitas yang sama memiliki cookie dan situs, situasi ini tetap dianggap sebagai konteks lintas situs atau "pihak ketiga" ketika domain cookie tidak cocok dengan situs tempat cookie diakses.
Ketika resource eksternal di halaman web mengakses cookie yang tidak cocok dengan domain situs, ini adalah konteks lintas situs atau "pihak ketiga".
Sebaliknya, akses cookie dalam konteks situs yang sama (atau "pihak pertama") terjadi jika domain cookie cocok dengan domain situs di kolom URL pengguna. Cookie situs yang sama biasa digunakan untuk membuat orang tetap login ke setiap situs, mengingat preferensi mereka, dan mendukung analisis situs.
Ketika resource di halaman web mengakses cookie yang cocok dengan situs yang dikunjungi pengguna, ini adalah konteks situs yang sama atau "pihak pertama".
Model Baru untuk Keamanan dan Transparansi Cookie
Saat ini, jika cookie hanya dimaksudkan untuk diakses dalam konteks pihak pertama, developer memiliki
opsi untuk menerapkan salah satu dari dua setelan (SameSite=Lax
atau
SameSite=Strict
) guna mencegah akses eksternal. Namun, sangat sedikit
developer yang mengikuti praktik yang direkomendasikan ini, sehingga banyak cookie
situs yang sama terekspos ancaman seperti
serangan Pemalsuan Permintaan Lintas
Situs dengan sia-sia.
Untuk mengamankan lebih banyak situs dan penggunanya, model baru yang aman secara default menganggap semua cookie
harus dilindungi dari akses eksternal, kecuali jika ditentukan lain. Developer harus menggunakan setelan
cookie baru, yaitu SameSite=None
, untuk menetapkan cookie bagi akses
lintas situs. Jika atribut SameSite=None
ada, atribut Secure tambahan harus
digunakan sehingga cookie lintas situs hanya dapat diakses melalui koneksi HTTPS.
Hal ini tidak akan mengurangi semua risiko yang berkaitan dengan akses lintas situs, tetapi akan memberikan
perlindungan terhadap serangan jaringan.
Selain manfaat keamanan langsung, deklarasi eksplisit cookie lintas situs memungkinkan transparansi dan pilihan pengguna yang lebih baik. Misalnya, browser dapat menawarkan kontrol terperinci kepada pengguna untuk mengelola cookie yang hanya diakses oleh satu situs secara terpisah dari cookie yang diakses di beberapa situs.
Penegakan Chrome Mulai Februari 2020
Dengan diluncurkannya Chrome 80 pada bulan Februari, Chrome akan memperlakukan cookie yang tidak memiliki nilai SameSite yang dideklarasikan sebagai
cookie SameSite=Lax
. Hanya cookie dengan setelan
SameSite=None
; Secure yang akan tersedia untuk akses
eksternal, asalkan cookie diakses dari koneksi yang aman. Pelacak Status Platform Chrome untuk
SameSite=None
dan
Secure
akan terus diperbarui dengan informasi peluncuran terbaru.
Mozilla telah menegaskan dukungannya atas model klasifikasi cookie yang baru dengan
maksud untuk menerapkan
persyaratan SameSite=None
; Secure untuk cookie lintas situs di Firefox. Microsoft baru-baru ini
mengumumkan
rencana untuk mulai menerapkan model tersebut sebagai eksperimen awal di Microsoft Edge 80.
Cara Melakukan Persiapan; Kompleksitas yang Diketahui
Jika mengelola cookie lintas situs, Anda perlu menerapkan setelan SameSite=None
;
Secure untuk cookie tersebut. Penerapan harus mudah dipahami sebagian besar developer,
tetapi kami sangat menyarankan agar Anda memulai pengujian sekarang untuk mengidentifikasi kompleksitas dan kasus khusus,
seperti berikut:
-
Belum semua bahasa dan library mendukung nilai None, yang mengharuskan developer menetapkan header cookie
secara langsung. Repositori GitHub ini
memberikan petunjuk untuk menerapkan
SameSite=None
; Secure dalam berbagai bahasa, library, dan framework. -
Beberapa browser, termasuk beberapa versi Chrome, Safari, dan UC Browser, dapat menangani
nilai
None
dengan cara yang tidak diinginkan, yang mengharuskan developer membuat kode pengecualian untuk klien tersebut. Ini mencakup Android WebView yang didukung oleh versi Chrome yang lebih lama. Berikut daftar klien yang tidak kompatibel yang diketahui. -
Developer aplikasi disarankan untuk mendeklarasikan setelan
SameSite cookie
yang sesuai untuk AndroidWebViews
berdasarkan versi Chrome yang kompatibel dengan nilaiNone
, baik untuk cookie yang diakses melalui header HTTP(S) maupun melalui CookieManager API AndroidWebView
, meskipun model baru tidak akan diterapkan di Android WebView sampai nanti. - Administrator IT Perusahaan mungkin perlu menerapkan kebijakan khusus guna mengembalikan Browser Chrome ke perilaku lama untuk sementara, jika beberapa layanan seperti single sign-on atau aplikasi internal belum siap untuk peluncuran pada bulan Februari.
-
Jika Anda memiliki cookie yang Anda akses dalam konteks pihak pertama dan ketiga, sebaiknya gunakan
cookie terpisah untuk mendapatkan manfaat keamanan
SameSite=Lax
dalam konteks pihak pertama.
SameSite Cookies Explained menawarkan panduan khusus untuk situasi yang dijelaskan di atas, serta saluran untuk mengajukan masalah dan pertanyaan.
Untuk menguji pengaruh perilaku Chrome baru pada situs atau cookies yang Anda kelola, Anda dapat membuka
chrome://flags
di Chrome 76 atau yang lebih baru serta mengaktifkan eksperimen
"SameSite by default cookies" dan
"Cookies without SameSite must be secure". Selain itu,
eksperimen ini akan otomatis diaktifkan untuk sebagian pengguna Chrome 79 Beta. Beberapa pengguna
Beta yang mengaktifkan eksperimen dapat mengalami masalah inkompatibilitas dengan layanan yang
belum mendukung model baru tersebut; pengguna dapat memilih untuk tidak mengaktifkan eksperimen Beta dengan membuka
chrome://flags
dan menonaktifkannya.
Jika Anda mengelola cookie yang hanya diakses dalam konteks situs yang sama (cookie situs yang sama), Anda tidak perlu melakukan tindakan apa pun; Chrome akan otomatis mencegah cookie tersebut diakses oleh entitas eksternal, meskipun jika atribut SameSite tidak ada atau tidak ada nilai yang ditetapkan. Namun, kami sangat menyarankan Anda untuk menerapkan nilai SameSite yang sesuai (Lax atau Strict) dan tidak mengandalkan perilaku browser default, karena tidak semua browser melindungi cookie situs yang sama secara default.
Terakhir, jika khawatir tentang kesiapan vendor dan pihak lain yang menyediakan layanan ke situs, Anda dapat memeriksa peringatan konsol Developer Tools di Chrome 77 dan yang lebih baru. Peringatan tersebut akan muncul saat halaman berisi cookie lintas situs tidak menerapkan setelan yang diperlukan:
Beberapa penyedia (termasuk beberapa layanan Google) akan menerapkan perubahan yang diperlukan dalam beberapa bulan menjelang peluncuran Chrome 80 pada bulan Februari; Anda dapat menghubungi partner Anda untuk mengonfirmasi kesiapan mereka.