คำเตือน: ตั้งแต่เวอร์ชัน 57 เป็นต้นไป Chrome จะไม่อนุญาตให้แสดงเนื้อหาเว็บภายนอก (รวมถึงเฟรมและสคริปต์ที่ฝังไว้) ภายในหน้าเว็บที่อยู่ในแซนด์บ็อกซ์อีกต่อไป โปรดใช้ WebView แทน
กำหนดคอลเล็กชันของหน้าแอปหรือส่วนขยายที่จะแสดงในต้นทางที่ไม่ซ้ำกันซึ่งอยู่ในแซนด์บ็อกซ์ และเลือกกำหนดนโยบายรักษาความปลอดภัยเนื้อหาที่จะใช้กับหน้าเหล่านั้นได้ การอยู่ในแซนด์บ็อกซ์มีนัย 2 ประการดังนี้
- หน้าเว็บที่อยู่ในแซนด์บ็อกซ์จะไม่มีสิทธิ์เข้าถึง API ของส่วนขยายหรือแอป หรือเข้าถึงหน้าเว็บที่ไม่อยู่ในแซนด์บ็อกซ์โดยตรง (อาจสื่อสารกับหน้าเว็บเหล่านั้นผ่าน
postMessage()) หน้าเว็บที่อยู่ในแซนด์บ็อกซ์จะไม่ขึ้นอยู่กับนโยบายรักษาความปลอดภัยเนื้อหา (CSP) ที่ส่วนอื่นๆ ของแอปหรือส่วนขยายใช้ (หน้าเว็บจะมีค่า CSP แยกต่างหากของตัวเอง) ซึ่งหมายความว่าหน้าเว็บดังกล่าวสามารถใช้สคริปต์แบบอินไลน์และ
evalได้ เป็นต้นตัวอย่างเช่น ต่อไปนี้เป็นวิธีระบุว่าหน้าส่วนขยาย 2 หน้าจะแสดงในแซนด์บ็อกซ์ที่มี CSP ที่กำหนดเอง
{ ... "sandbox": { "pages": [ "page1.html", "directory/page2.html" ] // content_security_policy is optional. "content_security_policy": "sandbox allow-scripts; script-src 'self'" ], ... }หากไม่ได้ระบุ ค่าเริ่มต้น
content_security_policyคือsandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';คุณสามารถระบุค่า CSP เพื่อจำกัดแซนด์บ็อกซ์เพิ่มเติมได้ แต่ค่าดังกล่าวต้องมีsandboxคำสั่งและไม่มีโทเค็นallow-same-origin(ดู ข้อกำหนด HTML5 สำหรับโทเค็นแซนด์บ็อกซ์ที่เป็นไปได้) นอกจากนี้ CSP ที่คุณระบุอาจไม่อนุญาตให้โหลดเนื้อหาเว็บภายนอกภายในหน้าเว็บที่อยู่ในแซนด์บ็อกซ์
โปรดทราบว่าคุณต้องระบุเฉพาะหน้าที่คาดว่าจะโหลดในหน้าต่างหรือเฟรมเท่านั้น ทรัพยากรที่หน้าเว็บที่อยู่ในแซนด์บ็อกซ์ใช้ (เช่น สไตล์ชีตหรือไฟล์แหล่งที่มาของ JavaScript) ไม่จำเป็นต้องปรากฏในรายการ sandboxed_page โดยทรัพยากรเหล่านี้จะใช้แซนด์บ็อกซ์ของหน้าที่ฝังทรัพยากรเหล่านั้น
"การใช้ eval ในส่วนขยาย Chrome อย่างปลอดภัย" จะอธิบายรายละเอียดเพิ่มเติมเกี่ยวกับการใช้งาน เวิร์กโฟลว์แซนด์บ็อกซ์ที่ช่วยให้ใช้ไลบรารีที่อาจมีปัญหาในการทำงานภายใต้ นโยบายรักษาความปลอดภัยเนื้อหาเริ่มต้นของส่วนขยายได้
คุณจะระบุหน้าเว็บที่อยู่ในแซนด์บ็อกซ์ได้ก็ต่อเมื่อใช้ manifest_version 2 ขึ้นไป