คีย์ไฟล์ Manifest ที่เป็นตัวเลือกซึ่งมีนโยบายรักษาความปลอดภัยเนื้อหาของแพลตฟอร์มเว็บ ซึ่งระบุข้อจำกัดเกี่ยวกับสคริปต์ รูปแบบ และทรัพยากรอื่นๆ ที่ส่วนขยายจะใช้ได้ ภายในคีย์ไฟล์ Manifest นี้ คุณจะกำหนดนโยบายที่ไม่บังคับแยกกันสำหรับทั้งหน้าส่วนขยายและหน้าส่วนขยายที่ทำแซนด์บ็อกซ์ได้
นโยบาย "หน้าส่วนขยาย" มีผลกับบริบทหน้าเว็บและผู้ปฏิบัติงานในส่วนขยาย ซึ่งรวมถึงป๊อปอัปส่วนขยาย ผู้ปฏิบัติงานเบื้องหลัง และแท็บที่มีหน้า HTML หรือ iframe ที่เปิดโดยส่วนขยาย นโยบายแซนด์บ็อกซ์จะมีผลกับทุกหน้าที่ระบุเป็นหน้าแซนด์บ็อกซ์ในไฟล์ Manifest
นโยบายเริ่มต้น
หากผู้ใช้ไม่ได้กำหนดนโยบายรักษาความปลอดภัยเนื้อหาในไฟล์ Manifest ระบบจะใช้พร็อพเพอร์ตี้เริ่มต้นสำหรับทั้งหน้าส่วนขยายและหน้าส่วนขยายที่ทำแซนด์บ็อกซ์
ค่าเริ่มต้นเหล่านี้เทียบเท่ากับการระบุนโยบายต่อไปนี้ในไฟล์ Manifest
{
// ...
"content_security_policy": {
"extension_pages": "script-src 'self'; object-src 'self';",
"sandbox": "sandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';"
}
// ...
}
ในกรณีนี้ ส่วนขยายจะโหลดสคริปต์ในเครื่องและออบเจ็กต์จากทรัพยากรที่มีในแพ็กเกจของตนเองเท่านั้น ระบบจะปิดใช้ WebAssembly และส่วนขยายจะไม่เรียกใช้ JavaScript ในบรรทัดหรือประเมินสตริงเป็นโค้ดสั่งการไม่ได้ หากเพิ่มหน้าแซนด์บ็อกซ์ หน้าดังกล่าวจะได้รับสิทธิ์ที่ผ่อนปรนมากขึ้นในการประเมินสคริปต์จากภายนอกส่วนขยาย
นโยบายรักษาความปลอดภัยเนื้อหาขั้นต่ำและที่กำหนดเอง
นักพัฒนาแอปอาจเพิ่มหรือนำกฎสำหรับส่วนขยายของตนออก หรือใช้นโยบายความปลอดภัยเนื้อหาขั้นต่ำที่จำเป็นเพื่อให้เหมาะกับความต้องการของโปรเจ็กต์ของตน
นโยบายหน้าส่วนขยาย
Chrome บังคับใช้นโยบายความปลอดภัยเนื้อหาขั้นต่ำกับหน้าส่วนขยาย สิ่งที่เทียบเท่ากับการระบุนโยบายต่อไปนี้ในไฟล์ Manifest ของคุณ
{
// ...
"content_security_policy": {
"extension_pages": "script-src 'self' 'wasm-unsafe-eval'; object-src 'self';"
}
// ...
}
นโยบาย extension_pages
จะผ่อนปรนเกินกว่าค่าขั้นต่ำนี้ไม่ได้ กล่าวคือ คุณไม่สามารถเพิ่มแหล่งที่มาของสคริปต์อื่นๆ ลงในคำสั่งได้ เช่น การเพิ่ม 'unsafe-eval'
ไปยัง script-src
หากคุณเพิ่มแหล่งที่มาที่ไม่ได้รับอนุญาตลงในนโยบายของส่วนขยาย Chrome จะแสดงข้อผิดพลาดดังนี้ตอนติดตั้ง
'content_security_policy.extension_pages': Insecure CSP value "'unsafe-eval'" in directive 'script-src'.
นโยบายหน้าแซนด์บ็อกซ์
นโยบายเริ่มต้นสำหรับหน้าเว็บที่ทำแซนด์บ็อกซ์จะผ่อนปรนมากกว่าหน้าส่วนขยายมาก เนื่องจากหน้าแซนด์บ็อกซ์ไม่มีสิทธิ์เข้าถึง API ส่วนขยายหรือเข้าถึงหน้าที่ไม่ได้แซนด์บ็อกซ์โดยตรง คุณปรับแต่งนโยบายรักษาความปลอดภัยเนื้อหาแซนด์บ็อกซ์ได้ตามต้องการ