ไฟล์ Manifest - นโยบายรักษาความปลอดภัยเนื้อหา

คีย์ไฟล์ 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 ส่วนขยายหรือเข้าถึงหน้าที่ไม่ได้แซนด์บ็อกซ์โดยตรง คุณปรับแต่งนโยบายรักษาความปลอดภัยเนื้อหาแซนด์บ็อกซ์ได้ตามต้องการ