ไฟล์ Manifest - แซนด์บ็อกซ์

คำเตือน: ตั้งแต่เวอร์ชัน 57 เป็นต้นไป Chrome จะไม่อนุญาตเนื้อหาเว็บภายนอกอีกต่อไป (รวมถึง เฟรมและสคริปต์ที่ฝังอยู่) ในหน้าแซนด์บ็อกซ์ โปรดใช้ Webview แทน

กำหนดคอลเล็กชันของหน้าแอปหรือส่วนขยายที่จะแสดงในต้นทางที่ไม่ซ้ำที่ทำแซนด์บ็อกซ์ และใช้นโยบายรักษาความปลอดภัยเนื้อหา (ไม่บังคับ) เพื่อใช้กับนโยบายดังกล่าว การอยู่ในแซนด์บ็อกซ์มีผล 2 ประการดังนี้

  1. หน้าที่ทำแซนด์บ็อกซ์จะไม่มีสิทธิ์เข้าถึง API ของส่วนขยายหรือแอป หรือการเข้าถึงโดยตรงไปยัง หน้าเว็บที่ไม่ได้อยู่ในแซนด์บ็อกซ์ (อาจสื่อสารกับหน้าเว็บผ่าน postMessage())
  2. หน้าเว็บแซนด์บ็อกซ์ไม่อยู่ภายใต้นโยบายรักษาความปลอดภัยเนื้อหา (CSP) ที่ใช้โดยบริการอื่นๆ แอปหรือส่วนขยาย (มีค่า CSP แยกต่างหาก) ซึ่งหมายความว่าสามารถ ใช้สคริปต์ในหน้าและ eval

    ตัวอย่างเช่น ต่อไปนี้เป็นวิธีระบุว่าจะแสดงหน้าส่วนขยายสองหน้าในแซนด์บ็อกซ์ที่มี 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 ซึ่งผู้ใช้จะใช้แซนด์บ็อกซ์ของหน้าที่ฝังไว้

"การใช้การประเมินในส่วนขยาย Chrome อย่างปลอดภัย" มีรายละเอียดเพิ่มเติมเกี่ยวกับการติดตั้งใช้งาน เวิร์กโฟลว์แซนด์บ็อกซ์ที่ทำให้สามารถใช้ไลบรารีที่อาจมีปัญหาในการดำเนินการภายใต้ นโยบายรักษาความปลอดภัยเนื้อหาเริ่มต้นของส่วนขยาย

ระบุหน้าที่แซนด์บ็อกซ์ได้เฉพาะเมื่อใช้ manifest_version 2 ขึ้นไปเท่านั้น