ไฟล์ Manifest - แหล่งข้อมูลที่เข้าถึงได้ทางเว็บ

อาร์เรย์ของสตริงที่ระบุเส้นทางของทรัพยากรแพ็กเกจซึ่งคาดว่าจะใช้งานได้ในบริบทของหน้าเว็บ โดยเส้นทางเหล่านี้สัมพัทธ์กับรูทของแพ็กเกจและอาจมีไวลด์การ์ด เช่น ส่วนขยายที่แทรกสคริปต์เนื้อหาที่ตั้งใจจะสร้างอินเทอร์เฟซที่กำหนดเองสำหรับ example.com จะทำให้มีทรัพยากรที่อินเทอร์เฟซต้องการ (รูปภาพ ไอคอน สไตล์ชีต สคริปต์ ฯลฯ) ดังนี้

{
  ...
  "web_accessible_resources": [
    "images/*.png",
    "style/double-rainbow.css",
    "script/double-rainbow.js",
    "script/main.js",
    "templates/*"
  ],
  ...
}

ทรัพยากรเหล่านี้จะพร้อมใช้งานในหน้าเว็บผ่านทาง URL chrome-extension://[PACKAGE ID]/[PATH] ซึ่งสร้างได้ด้วยเมธอด extension.getURL ทรัพยากรในรายการที่อนุญาตจะให้บริการพร้อมส่วนหัว CORS ที่เหมาะสม ทรัพยากรเหล่านี้จึงพร้อมใช้งานผ่านกลไกอย่าง XHR

ระบบจะบล็อกการนำทางจากต้นทางเว็บไปยังทรัพยากรส่วนขยาย เว้นแต่จะระบุว่าทรัพยากรนั้นเข้าถึงได้บนเว็บ โปรดสังเกตสถานการณ์มุมต่อไปนี้

  • เมื่อส่วนขยายใช้ API webRequest หรือ declarativeWebRequest เพื่อเปลี่ยนเส้นทางคำขอทรัพยากรสาธารณะไปยังทรัพยากรที่ไม่สามารถเข้าถึงเว็บได้ ระบบจะบล็อกคำขอดังกล่าวด้วย
  • การดำเนินการข้างต้นจะยังคงมีผล แม้ว่าส่วนขยายการเปลี่ยนเส้นทางจะเป็นเจ้าของทรัพยากรที่ไม่สามารถเข้าถึงเว็บได้ก็ตาม

ตัวสคริปต์เนื้อหาเองไม่จำเป็นต้องอยู่ในรายการที่อนุญาต

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

ความพร้อมให้บริการเริ่มต้น

ทรัพยากรภายในแพ็กเกจที่ใช้ manifest_version 2 ขึ้นไปจะถูกบล็อกโดยค่าเริ่มต้นและต้องได้รับอนุญาตให้ใช้ผ่านพร็อพเพอร์ตี้นี้

ทรัพยากรภายในแพ็กเกจที่ใช้ manifest_version 1 จะพร้อมใช้งานโดยค่าเริ่มต้น แต่ifตั้งค่าพร็อพเพอร์ตี้นี้ ระบบจะถือว่าเป็นรายการทรัพยากรทั้งหมดในรายการที่อนุญาตทั้งหมด ทรัพยากรที่ไม่อยู่ในรายการจะถูกบล็อก