Tukar keluar VPN semasa kedai dibuka dalam tab lain dan bakul biasanya masih ada. Itu bukan kegagalan VPN; itu pelayar melakukan apa yang diberitahu. Kuki dihantar oleh pelayar, dan laluan rangkaian baharu tidak mengubah apa yang pelayar simpan. Tiga soalan berbeza tersembunyi di sebalik «tapak masih mengenali saya», dan jawapannya bergantung pada soalan mana yang sebenarnya anda tanyakan.

Tiga soalan, satu simptom

Pertama: adakah tapak mengenali kuki yang disimpan? Kedua: adakah ia mengenali akaun yang dilog masuk, yang kekal tanpa bergantung pada mana-mana kuki tunggal? Ketiga: adakah ia mengenali sesuatu tentang pelayar atau peranti dan bukannya keadaan tersimpan? Setiap satu mempunyai ujian dan penawarnya sendiri.

What you changedWhat it actually tests
VPN exit addressWhether the site treats a different network origin differently
Cookie jar for one siteWhether a stored identifier was doing the recognition
Browser profile or accountWhether identity, rather than storage, links the visits

Kebanyakan kekeliruan datang daripada mengubah yang pertama dan mengharapkan yang kedua menyusul. Alamat rangkaian dan stor pelayar ialah dua sistem berasingan yang kebetulan digunakan oleh halaman yang sama.

Apa yang sebenarnya dibawa oleh kuki

Pengurusan keadaan HTTP, seperti dinyatakan dalam RFC 6265, sengaja mudah: pelayan menetapkan nama dan nilai dengan skop, dan pelayar memulangkannya untuk permintaan yang sepadan dengan skop itu. Nilai boleh menjadi pengecam sesi, keutamaan, atau token legap yang dipetakan oleh pelayan kepada rekod bakul. Tiada apa-apa dalam mekanisme itu menyebut alamat klien.

Reka bentuk itulah sebabnya log masuk biasa dan bakul bertahan apabila rangkaian berubah, dan sebabnya ia juga bertahan untuk penjejak. Mekanisme yang sama melayani kedua-dua tujuan dan tidak membezakannya. Tiada medan dalam protokol untuk alamat klien, jadi tiada apa untuk dikendalikan oleh keluar baharu. Tapak yang ingin mengikat kuki kepada asal rangkaian perlu menambah logik itu sendiri.

Apabila tapak memulangkan kuki, pelayan mencari rekod yang ditunjuk oleh nilai itu. Menukar laluan yang diambil oleh permintaan tidak mengubah carian itu, dan itulah penjelasan penuh bagi pemerhatian bakul beli-belah.

Tentukan apa yang diukur oleh ujian anda

Sebelum mengubah apa-apa, tulis keadaan permulaan anda: profil pelayar yang mana, akaun yang mana, data tapak yang mana, laluan rangkaian yang mana. Kemudian ubah tepat satu daripadanya dan perhatikan. Ujian yang mengubah alamat keluar dan profil pelayar sekali gus tidak membuktikan apa-apa tentang kedua-duanya.

curl -sS -c /tmp/jar.txt -b /tmp/jar.txt -o /dev/null -w '%{http_code}\n' https://shop.example/cart
curl -sS -c /tmp/jar.txt -b /tmp/jar.txt -o /dev/null -w '%{http_code}\n' --interface 198.51.100.44 https://shop.example/cart

Kedua-dua arahan menggunakan semula fail kuki yang sama, dan yang kedua memaksa alamat sumber tempatan yang berbeza di tempat hos membenarkannya. Respons bakul adalah sama dalam kedua-dua kes kerana pelayan tidak pernah melihat identiti klien yang berbeza, hanya laluan yang berbeza. Itulah mekanisme dalam satu pasangan permintaan yang boleh diulang.

Jika matlamatnya ialah melihat sama ada tapak mengenali anda tanpa keadaan tersimpan, kosongkan data tapak itu dan ulangi. Jika ia masih mengenali anda, suspek seterusnya ialah akaun yang dilog masuk, pautan yang anda ikuti, atau ciri pelayar dan bukannya kuki.

Kosongkan keadaan yang betul, bukan rangkaian

Membuang stor satu tapak terletak dalam kawalan pelayar sendiri, dan ia selalunya akan melog keluar anda atau menetapkan semula keutamaan sebagai kesan sampingan. Ia tidak memadam akaun atau rekod yang sudah dipegang oleh perkhidmatan; itu memerlukan proses perkhidmatan itu sendiri.

Sekatan merentas tapak menangani bahagian masalah yang berbeza. Pelayar boleh menyekat atau memecahkan stor yang sepatutnya dikongsi oleh perkhidmatan terbenam merentas tapak, sementara log masuk pihak pertama terus berfungsi. Log masuk yang berjaya bukan bukti bahawa penjejakan merentas tapak berfungsi.

Tetingkap peribadi ialah alat lain dengan skop yang lebih sempit daripada jangkaan orang. Tapak masih boleh menetapkan kuki semasa sesi, dan log masuk masih mengenal pasti akaun. Menamatkan sesi peribadi itulah yang membuang keadaan sementara, yang bermaksud menutup setiap tetingkap peribadi dan bukan satu tab.

Akhir sekali, anggap cap jari sebagai kemungkinan dan bukan penjelasan pertama. Ciri peranti dan pelayar boleh menghubungkan lawatan tanpa sebarang kuki tersimpan, dan mengosongkan stor tidak akan menyentuhnya. Periksa punca mudah dahulu, kemudian luaskan siasatan, dan catat keadaan mana yang anda ubah supaya perbandingan seterusnya bermakna.

Artikel berkaitan