매니페스트 - 웹 액세스 가능한 리소스

웹페이지 컨텍스트에서 사용할 수 있을 것으로 예상되는 패키징된 리소스의 경로를 지정하는 문자열의 배열. 이러한 경로는 패키지 루트를 기준으로 하며 와일드 카드를 포함할 수 있습니다. 예를 들어 example.com의 커스텀 인터페이스를 빌드할 목적으로 콘텐츠 스크립트를 삽입하는 확장 프로그램은 인터페이스에 필요한 모든 리소스 (이미지, 아이콘, 스타일시트, 스크립트 등)를 허용합니다.

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

이러한 리소스는 extension.getURL 메서드로 생성할 수 있는 URL chrome-extension://[PACKAGE ID]/[PATH]를 통해 웹페이지에서 사용할 수 있습니다. 허용 목록의 리소스는 적절한 CORS 헤더와 함께 제공되므로 XHR과 같은 메커니즘을 통해 사용할 수 있습니다.

리소스가 웹 액세스 가능으로 나열되지 않는 한 웹 출처에서 확장 프로그램 리소스로의 탐색은 차단됩니다. 다음과 같은 특수한 케이스에 유의하세요.

  • 확장 프로그램에서 webRequest 또는 declarativeWebRequest API를 사용하여 공개 리소스 요청을 웹에서 액세스할 수 없는 리소스로 리디렉션하는 경우 이러한 요청도 차단됩니다.
  • 리디렉션하는 확장 프로그램에서 웹에서 액세스할 수 없는 리소스를 소유한 경우에도 위의 사항이 적용됩니다.

콘텐츠 스크립트 자체는 허용 목록에 추가할 필요가 없습니다.

매니페스트 버전 2 이전에는 확장 프로그램 내의 모든 리소스에 웹의 모든 페이지에서 액세스할 수 있었습니다. 이로 인해 악성 웹사이트에서 사용자가 설치한 확장 프로그램에 디지털 지문을 기록하거나 설치된 확장 프로그램 내의 취약점 (예: XSS 버그)을 악용할 수 있었습니다. 웹에서 액세스할 수 있도록 명시적으로 의도된 리소스로만 가용성을 제한하면 공격에 노출되는 영역을 최소화하고 사용자의 개인 정보를 보호할 수 있습니다.

기본 사용 가능 여부

manifest_version 2 이상을 사용하는 패키지 내부의 리소스는 기본적으로 차단되며 이 속성을 통해 사용할 수 있도록 허용 목록에 추가해야 합니다.

manifest_version 1을 사용하는 패키지 내부의 리소스는 기본적으로 제공되지만 if하면 허용 목록에 있는 모든 리소스의 전체 목록으로 처리됩니다. 목록에 없는 리소스는 차단됩니다.