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.com
Trang đầ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
, server1
và 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?
localStorage
cá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àfoo
bây giờ được thay thế bằng proxy ngược để trở thànhserver1_foo
vàserver2_foo
. Điều này đã khắc phục vấn đề chia sẻ.