Properti SameSite
Dimulai dengan Chrome 51, atribut SameSite baru telah ditambahkan ke cookie browser untuk mencegah serangan CSRF dan pelacakan pengguna (akuisisi cookie pihak ketiga yang berbahaya), dan untuk membatasi cookie pihak ketiga, sehingga mengurangi risiko keamanan.
SameSite didefinisikan dalam RFC6265bis:Login hyperlink terlihat.
Tentang CSRF Attack Recap:
Properti SameSite dapat diatur ke tiga nilai:Ketat 、 Lemah 、 Tidak ada。
Ketat: Melarang keras pihak ketiga mendapatkan cookie, dan tidak mengirim cookie dalam keadaan apa pun saat lintas situs; Cookie hanya akan disertakan jika URL halaman saat ini cocok dengan target permintaan. Aturan ini terlalu ketat dan dapat menyebabkan pengalaman pengguna yang sangat buruk. Misalnya, jika ada tautan GitHub di halaman web saat ini, pengguna tidak akan memiliki cookie GitHub saat mereka mengklik lompatan tersebut, dan lompatan selalu dibatalkan masuknya.
Lax: Cegah lintas situs, dalam banyak kasus dilarang mendapatkan cookie, kecuali untuk permintaan GET (tautan, pramuat, formulir GET) yang menavigasi ke URL tujuan; Setelah Ketat atau Longgar diatur, serangan CSRF pada dasarnya dihilangkan. Tentu saja, ini asalkan browser pengguna mendukung properti SameSite.
Atribut SameSiteDefault SameSite=Lax[Operasi ini berlaku untuk versi setelah Google merilis Chrome 80 versi stabil pada 4 Februari 2019]
Tidak: Tidak ada batasan.
Atribut Secure juga harus diatur (cookie hanya dapat dikirim melalui protokol HTTPS), jika tidak, cookie tidak akan valid. [Operasi ini berlaku untuk versi setelah Google merilis Chrome 80 versi stabil pada 4 Februari 2019]
Menguji properti SameSite
Kami secara dinamis memuat gambar situs A melalui konsol F12 di situs A, kodenya adalah sebagai berikut:
Kita dapat melihat dari permintaan jaringan bahwa ketika situs A meminta gambar nama domain situs A, itu akanBawa kue(SameSite tidak memiliki pengaturan, yaitu, Lax), seperti yang ditunjukkan pada gambar di bawah ini:
Kita secara acak menemukan situs B, dan kemudian secara dinamis memuat gambar situs A dan menemukannyaTidak membawaCookie apa pun, seperti yang ditunjukkan di bawah ini:
(Akhir)
|