การสลับเซิร์ฟเวอร์ VPN ทำให้คุณออกจากร้านค้าหรือไม่?
ที่อยู่ทางออกใหม่ไม่ได้ทำให้ขวดคุกกี้ว่างเปล่า ตัดสินใจก่อนว่าคุณกำลังทดสอบเส้นทางเครือข่าย เซสชันที่เข้าสู่ระบบ หรือข้อมูลเว็บไซต์ที่จัดเก็บไว้
สลับทางออก VPN ขณะที่ร้านค้าเปิดอยู่ในแท็บอื่น และตะกร้ามักจะยังอยู่ที่นั่น นี่ไม่ใช่ความล้มเหลวของ VPN แต่เป็นเบราว์เซอร์ที่ทำตามที่ได้รับคำสั่งอย่างแม่นยำ คุกกี้ถูกส่งโดยเบราว์เซอร์ และเส้นทางเครือข่ายใหม่ไม่เปลี่ยนสิ่งที่เบราว์เซอร์จัดเก็บ มีคำถามที่แตกต่างกันสามข้อซ่อนอยู่หลัง «เว็บไซต์ยังรู้จักฉัน» และคำตอบขึ้นอยู่กับว่าคุณกำลังถามข้อไหนจริง ๆ
สามคำถาม หนึ่งอาการ
ข้อแรก: เว็บไซต์จดจำคุกกี้ที่จัดเก็บไว้หรือไม่? ข้อที่สอง: จดจำบัญชีที่เข้าสู่ระบบซึ่งคงอยู่โดยไม่ขึ้นกับคุกกี้ใด ๆ หรือไม่? ข้อที่สาม: จดจำบางอย่างเกี่ยวกับเบราว์เซอร์หรืออุปกรณ์แทนสถานะที่จัดเก็บไว้หรือไม่? แต่ละข้อมีวิธีทดสอบและวิธีแก้ของตัวเอง
| What you changed | What it actually tests |
|---|---|
| VPN exit address | Whether the site treats a different network origin differently |
| Cookie jar for one site | Whether a stored identifier was doing the recognition |
| Browser profile or account | Whether identity, rather than storage, links the visits |
ความสับสนส่วนใหญ่มาจากการเปลี่ยนข้อแรกแล้วคาดว่าข้อที่สองจะตามมา ที่อยู่เครือข่ายและที่จัดเก็บของเบราว์เซอร์เป็นสองระบบแยกกันที่บังเอิญถูกใช้โดยหน้าเดียวกัน
คุกกี้แบกอะไรไว้จริง ๆ
การจัดการสถานะ HTTP ตามที่ระบุใน RFC 6265 ตั้งใจให้เรียบง่าย: เซิร์ฟเวอร์กำหนดชื่อและค่าพร้อมขอบเขต และเบราว์เซอร์ส่งกลับสำหรับคำขอที่ตรงกับขอบเขตนั้น ค่าอาจเป็นตัวระบุเซสชัน การตั้งค่า หรือโทเค็นทึบที่เซิร์ฟเวอร์แมปกับบันทึกตะกร้า ไม่มีที่ใดในกลไกกล่าวถึงที่อยู่ของไคลเอนต์
การออกแบบนี้คือเหตุผลที่การเข้าสู่ระบบและตะกร้าธรรมดารอดพ้นจากการเปลี่ยนเครือข่าย และยังเป็นเหตุผลที่มันรอดพ้นสำหรับตัวติดตาม กลไกเดียวกันให้บริการทั้งสองวัตถุประสงค์และไม่แยกความแตกต่างระหว่างกัน ไม่มีฟิลด์ใดในโปรโตคอลสำหรับที่อยู่ของไคลเอนต์ จึงไม่มีอะไรให้ทางออกใหม่ทำให้เป็นโมฆะ เว็บไซต์ที่ต้องการผูกคุกกี้กับต้นกำเนิดเครือข่ายจะต้องเพิ่มตรรกะนั้นเอง
เมื่อเว็บไซต์ส่งคุกกี้กลับมา เซิร์ฟเวอร์จะค้นหาบันทึกที่ค่านั้นชี้ไป การเปลี่ยนเส้นทางที่คำขอเดินไปไม่เปลี่ยนการค้นหานั้น และนี่คือคำอธิบายทั้งหมดสำหรับการสังเกตตะกร้าช้อปปิ้ง
ตัดสินใจว่าการทดสอบของคุณกำลังวัดอะไร
ก่อนเปลี่ยนสิ่งใด ให้เขียนสถานะเริ่มต้นของคุณ: โปรไฟล์เบราว์เซอร์ใด บัญชีใด ข้อมูลเว็บไซต์ใด เส้นทางเครือข่ายใด จากนั้นเปลี่ยนเพียงอย่างเดียวและสังเกต การทดสอบที่เปลี่ยนที่อยู่ทางออกและโปรไฟล์เบราว์เซอร์พร้อมกันไม่พิสูจน์สิ่งใดเกี่ยวกับทั้งสองอย่าง
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ทั้งสองคำสั่งใช้ไฟล์คุกกี้เดียวกันซ้ำ และคำสั่งที่สองบังคับใช้ที่อยู่ต้นทางภายในเครื่องอื่นในที่ที่โฮสต์อนุญาต การตอบสนองของตะกร้าเหมือนกันในทั้งสองกรณีเพราะเซิร์ฟเวอร์ไม่เคยเห็นตัวตนไคลเอนต์ที่แตกต่าง เพียงเห็นเส้นทางที่แตกต่าง นี่คือกลไกในคำขอหนึ่งคู่ที่ทำซ้ำได้
หากเป้าหมายคือดูว่าเว็บไซต์จดจำคุณได้โดยไม่มีสถานะที่จัดเก็บไว้หรือไม่ ให้ล้างข้อมูลของเว็บไซต์นั้นแล้วทำซ้ำ หากยังจดจำคุณได้ ผู้ต้องสงสัยรายต่อไปคือบัญชีที่เข้าสู่ระบบ ลิงก์ที่คุณตามไป หรือลักษณะของเบราว์เซอร์ ไม่ใช่คุกกี้
ล้างสถานะที่ถูกต้อง ไม่ใช่เครือข่าย
การลบที่จัดเก็บของเว็บไซต์หนึ่งเป็นหน้าที่ของการควบคุมของเบราว์เซอร์เอง และมักจะทำให้คุณออกจากระบบหรือรีเซ็ตการตั้งค่าเป็นผลข้างเคียง มันไม่ลบบัญชีหรือบันทึกที่บริการมีอยู่แล้ว สิ่งเหล่านั้นต้องใช้กระบวนการของบริการเอง
ข้อจำกัดข้ามเว็บไซต์จัดการกับอีกส่วนหนึ่งของปัญหา เบราว์เซอร์สามารถบล็อกหรือแบ่งพาร์ติชันที่จัดเก็บซึ่งบริการที่ฝังไว้จะแบ่งปันข้ามเว็บไซต์ ขณะที่การเข้าสู่ระบบแบบบุคคลที่หนึ่งยังคงทำงานอยู่ การเข้าสู่ระบบที่สำเร็จจึงไม่ใช่หลักฐานว่าการติดตามข้ามเว็บไซต์ทำงาน
หน้าต่างส่วนตัวเป็นเครื่องมืออีกชนิดที่มีขอบเขตแคบกว่าที่คนคาดหวัง เว็บไซต์ยังคงตั้งคุกกี้ได้ระหว่างเซสชัน และการเข้าสู่ระบบยังระบุบัญชีได้ การสิ้นสุดเซสชันส่วนตัวคือสิ่งที่ทิ้งสถานะชั่วคราว ซึ่งหมายถึงการปิดทุกหน้าต่างส่วนตัวไม่ใช่แท็บเดียว
สุดท้าย ให้ถือว่าการระบุตัวตนด้วยลายนิ้วมือเป็นความเป็นไปได้ ไม่ใช่คำอธิบายแรก ลักษณะของอุปกรณ์และเบราว์เซอร์สามารถเชื่อมโยงการเข้าชมได้โดยไม่มีคุกกี้ที่จัดเก็บไว้ และการล้างที่จัดเก็บจะไม่แตะต้องมัน ตรวจสอบสาเหตุง่าย ๆ ก่อน จากนั้นขยายการตรวจสอบ และจดบันทึกว่าคุณเปลี่ยนสถานะใดเพื่อให้การเปรียบเทียบครั้งถัดไปมีความหมาย