- มีการเพิ่มฟีเจอร์ใหม่เพื่อแก้ปัญหาความปลอดภัยบนเว็บที่มีมานานเรื่องการ "เปิดเผยประวัติการเข้าชมของผู้ใช้" ผ่านการตกแต่งสไตล์ลิงก์
:visited
- ตั้งแต่ Chrome 136 เป็นต้นไป ได้ปรับโครงสร้างเพื่อบล็อกการโจมตีลักษณะนี้ตั้งแต่ต้นทาง โดยใช้การ "แบ่งส่วนการจัดเก็บ (partitioning)" ของประวัติ
:visited
- ยังคงรักษาฟังก์ชันการแยกแยะลิงก์ที่เคยเข้าชมด้วยสายตาไว้ พร้อมออกแบบไม่ให้เว็บไซต์อื่นนำไปใช้ในทางที่ผิดได้
คำอธิบายวิธีการแบ่งส่วนการจัดเก็บลิงก์ :visited
- ในวิธีเดิม เมื่อคลิกลิงก์แล้ว ลิงก์นั้นจะแสดงสถานะ
:visited ได้จากทุกเว็บไซต์
- นี่เป็นข้อบกพร่องด้านความปลอดภัยเชิงการออกแบบที่ทำให้เว็บไซต์อันตรายติดตามประวัติการเข้าชมของผู้ใช้ได้
- ตัวอย่าง: หลังจากคลิกลิงก์ไปยัง Site-B จาก Site-A แล้ว หาก Site-Evil มีลิงก์เดียวกัน Site-Evil ก็จะเห็นว่า Site-B แสดงเป็น
:visited และรู้ได้ว่าผู้ใช้เคยเข้าชมหรือไม่
- ในโครงสร้างใหม่ จะบันทึกประวัติการเข้าชมเฉพาะในรูปแบบคู่ผสม "ไซต์ A + ปลายทางลิงก์ B" เท่านั้น
- กล่าวคือ บน Site-Evil จะไม่แสดงเป็น
:visited เพราะผู้ใช้ไม่ได้คลิกลิงก์นั้นจากบริบทดังกล่าว
- ผลลัพธ์คือ ประวัติการเข้าชมจะไม่ถูกเก็บแบบโกลบอล (global) อีกต่อไป แต่จะแยกเก็บตาม "URL ของลิงก์ + ไซต์ระดับบนสุด + ต้นทางของเฟรม"
วิธีจัดการลิงก์ภายในเว็บไซต์เดียวกัน
- สมมติว่าผู้ใช้กำลังค้นคว้าเรื่องชนิดของโลหะ และคลิกหน้า chrome กับ brass ของ
site.wiki จาก metals.com
- หลังจากนั้น เมื่อเข้าไปยังหน้า gold ของ
site.wiki ลิงก์ chrome และ brass จะไม่แสดงเป็น :visited (เพราะบริบทที่คลิกต่างกัน)
- เพื่อแก้เรื่องนี้ จึงมีการเพิ่มข้อยกเว้น
self-links
- ลิงก์ไปยังหน้าภายในเว็บไซต์เดียวกันจะแสดงเป็น
:visited แม้ไม่ได้ถูกคลิกในบริบทเดียวกัน
- อนุญาตเช่นนี้ได้เพราะเว็บไซต์สามารถติดตามประวัติการเข้าชมของผู้ใช้ภายในเว็บไซต์ของตนเองได้อยู่แล้ว จึงถือว่าไม่ได้เปิดเผยข้อมูลเพิ่ม
- อย่างไรก็ตาม ข้อยกเว้นนี้จะไม่ถูกใช้กับเว็บไซต์บุคคลที่สาม หรือลิงก์ของบุคคลที่สามภายใน iframe
สถานะการเปิดใช้งานฟีเจอร์
1 ความคิดเห็น
ที่ GeekNews เองก็เคยคิดจะลองใช้
:visitedเหมือนกัน แต่เพราะเรื่องความปลอดภัยเลยแทบทำอะไรไม่ได้ สุดท้ายก็เลยล้มเลิกไปถ้าสิ่งนี้ถูกนำมาใช้ครบทั้งหมด ก็อาจจะทำให้การสไตลิงที่หลากหลายเป็นไปได้มากขึ้นก็ได้ครับ