Dừng chia sẻ localStorage giữa các máy chủ đằng sau proxy ngược (vượt qua cùng nguồn gốc cho tất cả)


0

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, server1server2 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 server1server2.

Có cách nào để vô hiệu hóa việc chia sẻ localStorage giữa proxy, server1server2 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?

Câu trả lời:


0

Không có cách nào xa như tôi biết để có phân đoạn trình duyệt localStorage dựa trên bất kỳ thứ gì ngoài nguồn gốc và không có cách nào để thay đổi nguồn gốc ngoài việc thay đổi URL.

Nếu mục tiêu của bạn là phân đoạn dữ liệu được lưu trữ theo trang web để tránh xung đột, bạn sẽ phải thực hiện thủ công bằng cách chỉ định cho mỗi trang web một số khóa duy nhất mà theo đó nó có thể lưu trữ dữ liệu của nó.

Nếu mục tiêu của bạn là ngăn chặn server1 đọc / ghi vào bộ nhớ của server2, điều đó sẽ không thể thực hiện được nếu không thay đổi nguồn gốc của máy chủ.


Cảm ơn kicken, điều đó xác nhận sự nghi ngờ của tôi quá. Tôi đã kết thúc việc sửa đổi 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ành server1_fooserver2_foo. Điều này đã khắc phục vấn đề chia sẻ.
Matt Muggeridge
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.