หยุดการแชร์ localStorage ระหว่างเซิร์ฟเวอร์ที่อยู่ด้านหลังพร็อกซีย้อนกลับ


0

พิจารณาเซิร์ฟเวอร์แบ็กเอนด์สองแห่ง:

https://server1.example.com
https://server2.example.com

เมื่อเข้าถึงเซิร์ฟเวอร์เหล่านี้โดยตรงเซิร์ฟเวอร์จะมีความเป็นอิสระ localStorage วัตถุตั้งแต่ต้นกำเนิดของพวกเขาแตกต่างกัน ในกรณีนี้ชื่อโฮสต์ต่างกัน

เมื่อฉันวางเซิร์ฟเวอร์เหล่านี้ไว้ข้างหลังพร็อกซีย้อนกลับจะถูกเข้าถึงดังต่อไปนี้:

https://proxy.example.com/server1
https://proxy.example.com/server2

เพื่อให้ภาพซับซ้อนขึ้นเล็กน้อยฉันมีหน้าส่วนหน้าบน proxy:

https://proxy.example.com

หน้านี้แสดงรายการเซิร์ฟเวอร์เป็นฮอตลิงค์โดยใช้ HTML   คล้ายกับ:

<a href="https://proxy.example.com/server1/" target="_blank">Server1</a>
<a href="https://proxy.example.com/server2/" target="_blank">Server2</a>

ตอนนี้แต่ละเซิร์ฟเวอร์ proxy, server1 และ server2 ทั้งหมดผ่านไป same-origin ทดสอบเนื่องจากพวกเขาแต่ละคนมี origin=https://proxy.example.com:443. ดังนั้น localStorage วัตถุถูกแชร์ในหมู่พวกเขาและการแบ่งปันนี้ทำให้แอปพลิเคชันสับสน server1 และ server2.

มีวิธีปิดการแชร์หรือไม่ localStorage ระหว่าง proxy, server1และ server2 ในการกำหนดค่านี้หรือไม่?

หากไม่มีมีวิธีการใน Javascript ที่จะปิดการใช้งานการแชร์ระหว่างเอนทิตีเหล่านี้หรือไม่

คำตอบ:


0

ไม่มีทางเท่าที่ฉันรู้ที่จะมีส่วนท้องถิ่นเบราว์เซอร์จัดเก็บตามสิ่งอื่นนอกเหนือจากที่มาและไม่มีทางที่จะเปลี่ยนต้นกำเนิดอื่นนอกเหนือจากการเปลี่ยน URL

หากเป้าหมายของคุณคือการแบ่งกลุ่มข้อมูลที่เก็บไว้ตามไซต์เพื่อหลีกเลี่ยงความขัดแย้งคุณจะต้องทำด้วยตนเองโดยกำหนดคีย์เฉพาะที่ไม่ซ้ำกันให้แต่ละไซต์สามารถเก็บข้อมูลได้

หากเป้าหมายของคุณคือป้องกันไม่ให้เซิร์ฟเวอร์ 1 อ่าน / เขียนไปยังที่เก็บข้อมูลของเซิร์ฟเวอร์ 2 นั่นจะไม่สามารถทำได้โดยไม่ต้องเปลี่ยนต้นกำเนิดของเซิร์ฟเวอร์


ขอบคุณเตะที่ยืนยันความสงสัยของฉันด้วย ฉันสิ้นสุดการปรับเปลี่ยน localStorage คีย์ด้วยคำสั่ง reverse-proxy replace ดังนั้นตอนนี้คีย์จึงใช้เฉพาะเซิร์ฟเวอร์ เช่น. กุญแจที่เรียกว่า foo ถูกแทนที่โดย reverse-proxy ที่จะกลายเป็น server1_foo และ server2_foo. ปัญหานี้ได้รับการแก้ไข
Matt Muggeridge
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.