Saya benar-benar tidak percaya ini sangat sulit untuk ditentukan.
Bahkan setelah membaca RFC, tidak jelas bagi saya jika server di subdomain.example.com dapat mengatur cookie yang dapat dibaca oleh example.com.
subdomain.example.com dapat menetapkan cookie yang atribut Domain-nya adalah .example.com. RFC 2965 tampaknya secara eksplisit menyatakan bahwa cookie semacam itu tidak akan dikirim ke example.com, tetapi kemudian sama-sama mengatakan bahwa jika Anda menetapkan Domain = example.com, sebuah titik didahului, seolah-olah Anda mengatakan .example.com. Secara keseluruhan, ini sepertinya mengatakan bahwa jika pengembalian example.com menetapkan cookie dengan Domain = example.com, itu tidak mendapatkan cookie itu kembali! Itu tidak benar.
Adakah yang bisa menjelaskan apa aturan sebenarnya?
Jawaban:
Mengutip dari RFC2109 yang sama dengan yang Anda baca:
Jadi
subdomain.example.com
dapat mengatur cookie untuk.example.com
. Sejauh ini baik.Jadi, apakah kita memiliki pencocokan domain?
Tapi sekarang
example.com
tidak akan cocok dengan domain.example.com
sesuai dengan definisi. Tetapiwww.example.com
(atau "nama tidak kosong" lainnya di domain) akan melakukannya. RFC ini secara teori sudah usang oleh RFC2965 , yang mendikte hal-hal tentang memaksa titik terkemuka untuk domain padaSet-Cookie2
operasi.Lebih penting, seperti dicatat oleh @Tony, adalah dunia nyata. Untuk melihat sekilas apa yang dilakukan agen pengguna aktual, lihat
dan
Untuk perspektif ke dalam apa situs yang sebenarnya lakukan, coba bermain dengan
wget
menggunakan--save-cookies
,--load-cookies
dan--debug
untuk melihat apa yang terjadi.Anda mungkin akan menemukan bahwa sebenarnya sebagian besar situs menggunakan beberapa kombinasi dari
Set-Cookie
spesifikasi RFC yang lebih lama dengan nilai "Host", secara implisit tanpa titik terkemuka (seperti yang dilakukan twitter.com ) atau pengaturan nilai Domain (dengan titik terkemuka) dan mengarahkan ulang ke server sepertiwww.example.com
(seperti yang dilakukan google.com ).sumber
y.z
dan (2) agen-pengguna mengimplementasikan RFC 6265.Jika peramban mengimplementasikan RFC 6265 , yang harus dilakukan peramban modern mana pun pada saat ini, maka kuki yang ditetapkan untuk
.example.com
titik utama akan diabaikan (bagian 5.2.3), dan kuki kemudian akan dikirim ke domain telanjang dan ke semua subdomain.Jangan mengandalkan perilaku ini jika Anda memiliki lalu lintas yang signifikan dari browser lama; RFC ini baru berlaku untuk 2011.
sumber
Seharusnya tidak mungkin. Namun, seperti yang Anda katakan, karena ini bukan standar yang banyak didokumentasikan, itu tergantung pada perangkat lunak apa yang Anda gunakan.
Sebagian besar browser modern mematuhi "model keamanan web" yang ditentukan. Model ini secara efektif mengatur perilaku browser sehubungan dengan keamanan, pada hal-hal seperti cookie (khususnya bagaimana mereka akan dikirim kembali ke situs web mana pun yang diberikan). Model ini juga memiliki aturan bahwa "browser tidak mengirim cookie ke nama domain yang tidak menyetelnya."
Karena itu, domain.com harus dapat mengatur cookie untuk js.domain.com. js.domain.com, bagaimanapun, hanya dapat mengatur cookie untuk dirinya sendiri. Tapi ini semua tergantung pada browser apa yang Anda gunakan.
sumber