Hãy xem xét hai máy chủ phụ trợ:
https://server1.example.com
https://server2.example.com
Khi truy cập trực tiếp vào các máy chủ này, chúng tự nhiên có độc lập localStorage đối tượng, vì nguồn gốc của chúng là khác nhau; trong trường hợp này tên máy chủ khác nhau.
Khi tôi đặt các máy chủ này phía sau một proxy ngược, chúng được truy cập như sau:
https://proxy.example.com/server1
https://proxy.example.com/server2
Để làm phức tạp hình ảnh một chút, tôi có một trang đầu trên
proxy:https://proxy.example.comTrang đầu này liệt kê các máy chủ dưới dạng liên kết nóng bằng HTML tương tự như:
<a href="https://proxy.example.com/server1/" target="_blank">Server1</a> <a href="https://proxy.example.com/server2/" target="_blank">Server2</a>
Bây giờ, mỗi máy chủ proxy, server1 và server2 tất cả vượt qua same-origin kiểm tra, vì họ từng có origin=https://proxy.example.com:443. Do đó, localStorage đối tượng được chia sẻ giữa họ và việc chia sẻ này gây nhầm lẫn cho các ứng dụng trên server1 và server2.
Có cách nào để vô hiệu hóa việc chia sẻ localStorage giữa proxy, server1và server2 trong cấu hình này?
Nếu không, có phương thức nào trong Javascript sẽ vô hiệu hóa chia sẻ giữa các thực thể này không?
localStoragecác phím với lệnh thay thế proxy ngược. Vì vậy, bây giờ, các khóa là máy chủ cụ thể. Ví dụ. một chìa khóa được gọi làfoobây giờ được thay thế bằng proxy ngược để trở thànhserver1_foovàserver2_foo. Điều này đã khắc phục vấn đề chia sẻ.