นโยบายการแยกเอกสาร: เปิดใช้ฟีเจอร์ที่มีประสิทธิภาพของเว็บได้อย่างง่ายดาย

Camille Lamy
Camille Lamy

เผยแพร่: 1 พฤษภาคม 2025

ใน Chrome เวอร์ชัน 137 นโยบายการแยกเอกสารเป็นฟีเจอร์ใหม่ที่ช่วยให้การใช้ crossOriginIsolation ง่ายขึ้น ซึ่งต่างจาก COEP (Cross-Origin-Embedder-Policy) ที่นโยบายการแยกเอกสารจะมีผลบังคับใช้ต่อเฟรมและไม่มีข้อกำหนดสำหรับเฟรมย่อย การเปิดใช้ crossOriginIsolation จะปลดล็อกการเข้าถึงฟังก์ชันการทำงานของเว็บที่มีประสิทธิภาพ เช่น SharedArrayBuffers หรือเธรด WebAssembly

การแยกแบบข้ามต้นทางคืออะไร

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

นโยบายการแยกเอกสารคืออะไร

นโยบายการแยกเอกสารเป็นวิธีที่ตรงไปตรงมากว่าในการใช้งาน crossOriginIsolation เมื่อเทียบกับ COOP (Cross-Origin-Opener-Policy) และ COEP (Cross-Origin-Embedder-Policy) ซึ่งช่วยให้แยกตามเฟรมได้ จึงไม่จำเป็นต้องใช้ iframe ที่ฝังเพื่อรองรับ COEP

วิธีการทำงานของนโยบายการแยกเอกสาร

นโยบายการแยกเอกสารช่วยให้คุณแยกเฟรมที่เฉพาะเจาะจงภายในเว็บแอปพลิเคชันได้ เมื่อส่งส่วนหัว Document-Isolation-Policy มาพร้อมกับเอกสาร เอกสารจะได้รับสิทธิ์เข้าถึงฟีเจอร์ที่มีประสิทธิภาพ เช่น SharedArrayBuffers ซึ่งปกติแล้วจะถูกจํากัดเนื่องจากข้อกังวลด้านความปลอดภัย นโยบายการแยกเอกสารจะไม่จำกัดหน้าเว็บที่เอกสารสื่อสารได้หรือเฟรมย่อยที่ฝังได้ ต่างจาก COOP และ COEP เอกสารที่มีนโยบายการแยกเอกสารสามารถเปิดป๊อปอัปข้ามต้นทางและสื่อสารกับป๊อปอัปเหล่านั้นได้ และยังฝัง iframe ได้ตามปกติ

นโยบายการแยกเอกสารมี 2 โหมด ได้แก่ isolate-and-require-corp และ isolate-and-credentialless ซึ่งคล้ายกับ COEP โหมดเหล่านี้จะกําหนดวิธีจัดการทรัพยากรย่อยข้ามโดเมนที่โหลดโดยไม่ใช้กลไกการแชร์ทรัพยากรข้ามโดเมน (CORS) ในโหมด isolate-and-require-corp ทรัพยากรข้ามต้นทางต้องประกาศนโยบายทรัพยากรข้ามต้นทางอย่างชัดเจนโดยใช้ส่วนหัว Cross-Origin-Resource-Policy หากไม่ดำเนินการ ระบบจะบล็อกทรัพยากรดังกล่าว วิธีนี้ช่วยให้มั่นใจว่ามีการแชร์ทรัพยากรโดยเจตนา ในทางกลับกัน โหมด isolate-and-credentialless อนุญาตให้โหลดทรัพยากรข้ามแหล่งที่มาได้โดยไม่ต้องมีCORS แต่จะนำข้อมูลเข้าสู่ระบบทั้งหมด (เช่น คุกกี้หรือการตรวจสอบสิทธิ์ HTTP) ออกจากคำขอ ซึ่งจะถือว่าทรัพยากรนั้นเป็นแบบไม่ระบุตัวตน โหมดนี้ใช้วิธีจัดการทรัพยากรที่ไม่ใช่ CORS ได้อย่างปลอดภัยแต่มีข้อจำกัดน้อยกว่า

iframe ที่แยกด้วยนโยบายการแยกเอกสารจะไม่มี DOM แบบซิงค์ในการเข้าถึง iframe ต้นทางเดียวกันที่ไม่ได้แยก อย่างไรก็ตาม เฟรมย่อยที่แยกเหล่านี้จะยังคงสื่อสารกับเฟรมที่ไม่ได้แยกโดยใช้เมธอด Window ข้ามแหล่งที่มา เช่น postMessage นอกจากนี้ ผู้ใช้ดังกล่าวจะยังคงมีสิทธิ์เข้าถึง API พื้นที่เก็บข้อมูลโดยสมบูรณ์ ซึ่งช่วยให้สามารถเก็บรักษาและแชร์ข้อมูลภายในแหล่งที่มาเดียวกันได้ แม้ว่าจะเปิดใช้การแยกไว้แล้วก็ตาม