- Để giải quyết vấn đề bảo mật web lâu năm là việc "lộ lịch sử truy cập của người dùng" thông qua việc tạo kiểu cho liên kết
:visited, một tính năng mới đã được giới thiệu
- Từ Chrome 136, bằng cách "phân vùng lưu trữ (partitioning)" lịch sử
:visited, cấu trúc đã được cải tiến để có thể chặn tận gốc các cuộc tấn công này
- Vẫn giữ nguyên khả năng phân biệt trực quan các liên kết đã truy cập, đồng thời được thiết kế để các trang web khác không thể lợi dụng điều này
Giải thích cách phân vùng lưu trữ liên kết :visited
- Trong cách làm trước đây, khi nhấp vào một liên kết, liên kết đó sẽ hiển thị ở trạng thái
:visited trên bất kỳ trang web nào
- Đây là một lỗ hổng bảo mật trong thiết kế, cho phép các trang độc hại theo dõi lịch sử truy cập của người dùng
- Ví dụ: sau khi nhấp vào liên kết Site-B trên Site-A, nếu Site-Evil cũng có cùng liên kết đó thì Site-B sẽ được hiển thị là
:visited, từ đó có thể biết người dùng đã truy cập hay chưa
- Trong cấu trúc mới, lịch sử truy cập chỉ được lưu theo tổ hợp "trang A + đích liên kết B"
- Nói cách khác, trên Site-Evil, vì người dùng chưa nhấp vào liên kết đó trong ngữ cảnh này nên nó sẽ không hiển thị là
:visited
- Kết quả là lịch sử truy cập không còn được lưu ở phạm vi toàn cục (global), mà được tách riêng theo "URL liên kết + trang cấp cao nhất + nguồn frame"
Cách xử lý liên kết trong cùng một trang web
- Giả sử một người dùng đang tìm hiểu về các loại kim loại và đã nhấp vào các trang chrome và brass của
site.wiki từ metals.com
- Sau đó, khi truy cập trang gold của
site.wiki, các liên kết chrome và brass sẽ không được hiển thị là :visited (vì ngữ cảnh đã nhấp khác nhau)
- Để cải thiện điều này, ngoại lệ
self-links đã được đưa vào
- Các liên kết đến các trang con trong cùng một trang web sẽ được hiển thị là
:visited ngay cả khi không được nhấp trong cùng một ngữ cảnh
- Điều này được cho phép vì trang web vốn đã có thể tự theo dõi lịch sử truy cập của người dùng, nên được xem là không làm lộ thêm thông tin
- Tuy nhiên, ngoại lệ này không áp dụng cho trang web bên thứ ba hoặc liên kết của bên thứ ba trong iframe
Tình hình triển khai tính năng
1 bình luận
Trước đây bên GeekNews cũng định tận dụng
:visited, nhưng vì lý do bảo mật nên hầu như không làm được gì và cuối cùng đã phải bỏ cuộc.Nếu tất cả những điều này được áp dụng, có lẽ sẽ có thể tạo ra nhiều kiểu styling đa dạng hơn.