사용자 개인 정보 보호

개인 정보가 침해되거나 필요한 것으로 보이는 추가 권한을 요청하는 경우 사용자는 확장 프로그램을 설치하지 않습니다. 권한 요청은 사용자가 이해할 수 있어야 하며 확장 프로그램을 구현하는 데 필요한 중요한 정보로만 제한되어야 합니다. 사용자 데이터를 수집 또는 전송하는 확장 프로그램은 사용자 개인 정보 보호 정책을 준수해야 합니다.

신원을 안전하게 보호하기 위한 예방 조치를 포함하여 확장 프로그램 사용자를 보호하고 존중합니다.

필수 권한 줄이기

확장 프로그램에서 액세스할 수 있는 API는 매니페스트permissions 필드에 지정됩니다. 더 많은 권한이 부여될수록 공격자가 정보를 가로챌 수 있는 경로가 많아집니다. 확장 프로그램이 사용하는 API만 나열해야 하며, 침습성이 적은 옵션을 고려해야 합니다. 확장 프로그램에서 요청하는 권한이 적을수록 사용자에게 표시되는 권한 경고도 적습니다. 사용자가 제한된 경고가 표시되는 확장 프로그램을 설치할 가능성이 높습니다.

확장 프로그램은 '미래에 대비'해서는 안 됩니다. 사용자 데이터에 대한 액세스를 요청할 수도 있습니다. 확장 프로그램 업데이트에 새로운 권한을 포함하고 선택사항으로 설정하는 것이 좋습니다.

activeTab

호스트 권한을 사용하여 스크립트를 삽입하는 확장 프로그램이 activeTab를 대신 대체하는 경우가 많습니다. activeTab 권한은 사용자가 확장 프로그램을 호출하는 경우에만 현재 활성 탭에 대한 임시 액세스 권한을 확장 프로그램에 부여합니다. 사용자가 현재 탭에서 벗어나거나 현재 탭을 닫으면 액세스가 차단됩니다. <all_urls>의 다양한 용도에서 대안으로 사용됩니다.

{
  "name": "Very Secure Extension",
  "version": "1.0",
  "description": "Example of a Secure Extension",
  "permissions": ["activeTab"],
  "manifest_version": 3
}

ActiveTab 권한은 설치 중에 경고 메시지를 표시하지 않습니다.

선택적 권한 선택

선택적 권한을 포함하여 사용자가 확장 프로그램에서 필요한 기능과 권한을 선택할 수 있도록 합니다. 확장 프로그램의 핵심 기능에 꼭 필요한 기능이 아닌 경우 선택사항으로 지정하고 API 또는 도메인을 optional_permissions 필드로 이동합니다.

{
  "name": "Very Secure Extension",
  ...
  "optional_permissions": [ "tabs", ],
  "optional_host_permissions": ["https://www.google.com/" ],
  ...
}

선택적 권한을 포함하면 확장 프로그램에서 특정 권한이 필요한 이유를 설명할 수 있습니다. 사용자가 관련 기능을 사용 설정할 때 확장 프로그램에서 사용자에게 사용 설정 옵션을 제공할 수 있습니다. 기능을 살펴보겠습니다

권한 사용 설정을 요청하는 팝업의 스크린샷

OK!(확인)를 클릭하면 서비스 워커에서 다음 이벤트가 트리거됩니다.

chrome.action.onClicked.addListener((event) => {
  // Permissions must be requested from inside a user gesture, like a button's
  // click handler.
  chrome.permissions.request(
    {
      permissions: ["tabs", "scripting"],
      origins: ['https://www.google.com/']
    },
    function (granted) {
      // The callback argument will be true if the user granted the permissions.
      if (granted) {
        // doSomething();
      } else {
        // doSomethingElse();
      }
    }
  );
});

그러면 사용자에게 다음 요청을 요청하는 메시지가 표시됩니다.

선택적 권한 요청의 스크린샷

확장 프로그램 업데이트에 선택적 권한을 구현할 수도 있습니다. 이렇게 하면 새 새 버전으로 업데이트하면 발생할 수 있는 것처럼 확장 프로그램을 사용 중지하지 않고도 사용자가 사용할 수 있는 사용할 수 있습니다.

사용자 정보 제한 및 보호

확장 프로그램에 필요한 최소 데이터 양만 요청합니다. 확장 프로그램이 사용자에게 요청하는 정보가 적을수록 확장 프로그램이 손상되었을 때 노출될 가능성도 낮아집니다.

요청된 모든 사용자 데이터는 주의해서 취급해야 합니다. 다음을 사용하여 보안 서버에 데이터 저장 및 검색 액세스할 수 있습니다. 항상 HTTPS를 사용하여 연결하고 민감한 사용자 데이터를 클라이언트에 보관하지 마세요. 확장 프로그램 스토리지가 암호화되지 않기 때문입니다.

데이터 저장 및 시크릿 모드

확장 프로그램은 storage API를 사용하거나 다음과 같은 서버 요청을 실행하여 데이터를 저장할 수 있습니다. 이로 인해 데이터가 절약됩니다. 확장 프로그램에서 정보를 저장해야 하는 경우 먼저 시크릿 창입니다. 기본적으로 확장 프로그램은 시크릿 창에서 실행되지 않습니다.

시크릿 모드는 창에 아무 것도 남기지 않습니다. 인코더-디코더 아키텍처를 시크릿 창을 사용하는 경우 확장 프로그램은 이 약속을 지켜야 합니다. 확장 프로그램에서 일반적으로 인터넷 사용 기록을 저장하는 경우 시크릿 창의 기록을 저장하지 않습니다. 하지만 확장 프로그램은 모든 창에서 환경설정을 변경할 수 있습니다.

창이 시크릿 모드인지 감지하려면 관련 incognito 속성에서 tabs.Tab 또는 windows.Window 객체

function saveTabData(tab) {
  if (tab.incognito) {
    return;
  } else {
    chrome.storage.local.set({data: tab.url});
  }
}