กำหนดคอลเล็กชันของหน้าส่วนขยายที่จะแสดงในต้นทางที่ไม่ซ้ำที่ทำแซนด์บ็อกซ์
นโยบายรักษาความปลอดภัยเนื้อหาที่หน้าเว็บแซนด์บ็อกซ์ของส่วนขยายใช้จะระบุไว้ในฟิลด์
"content_security_policy"
การอยู่ในแซนด์บ็อกซ์มีผล 2 ประการดังนี้
- หน้าที่ทำแซนด์บ็อกซ์จะไม่มีสิทธิ์เข้าถึง API ส่วนขยาย หรือการเข้าถึงโดยตรง
หน้าเว็บที่ไม่ได้อยู่ในแซนด์บ็อกซ์ (อาจสื่อสารกับหน้าเว็บโดยใช้
postMessage()
) - หน้าเว็บแซนด์บ็อกซ์ไม่อยู่ภายใต้นโยบายรักษาความปลอดภัยเนื้อหา (CSP) ที่ใช้โดยบริการอื่นๆ
ส่วนขยาย (มีค่า CSP แยกต่างหาก) ซึ่งหมายความว่าสามารถ
ใช้สคริปต์ในหน้าและ
eval()
ตัวอย่างเช่น ต่อไปนี้เป็นวิธีระบุว่าจะแสดงหน้าส่วนขยายสองหน้าในแซนด์บ็อกซ์ที่มี CSP ที่กำหนดเอง:
{
...
"content_security_policy": {
"sandbox": "sandbox allow-scripts; script-src 'self' https://example.com"
},
"sandbox": {
"pages": [
"page1.html",
"directory/page2.html"
]
},
...
}
หากไม่ได้ระบุไว้ ค่าเริ่มต้น "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
ของโทเค็นแซนด์บ็อกซ์ที่เป็นไปได้)
โปรดทราบว่าคุณจำเป็นต้องแสดงรายการหน้าเว็บที่คุณคาดว่าจะโหลดในหน้าต่างหรือเฟรมเท่านั้น แหล่งข้อมูล
ใช้โดยหน้าเว็บที่แซนด์บ็อกซ์ (เช่น สไตล์ชีตหรือไฟล์ที่มา JavaScript) ไม่จำเป็นต้องปรากฏในส่วน
pages
เนื่องจากจะใช้แซนด์บ็อกซ์ของเฟรมที่ฝังตำแหน่งอยู่
"การใช้ eval() ในส่วนขยาย Chrome" ให้รายละเอียดเพิ่มเติมเกี่ยวกับการใช้ เวิร์กโฟลว์แซนด์บ็อกซ์ที่ทำให้สามารถใช้ไลบรารีที่อาจมีปัญหาในการดำเนินการภายใต้ นโยบายรักษาความปลอดภัยเนื้อหาเริ่มต้นของส่วนขยาย