확장 프로그램이 웹사이트 및 대부분의 Chrome API에 액세스하는 기능은 어떤 확장 프로그램이 선언한 지에 따라 결정됩니다. 권한이 있습니다. 권한은 해당 기능에 필요한 항목으로만 제한되어야 합니다. 권한을 제한하면 확장 프로그램의 기능을 설정하고 데이터에 대한 발생 가능성이 줄어듭니다. 확장 프로그램의 보안이 침해된 경우 다음을 구현하여 확장 프로그램과 그 사용자를 보호합니다. 명시적, 최소, 선택적 권한을 지원합니다.
권한 구성
권한은 Chrome API 또는 액세스 권한을 부여하는 일치 패턴을 참조하는 알려진 문자열입니다. 1개 이상의 호스트로 구성됩니다 이러한 권한은 매니페스트에 나열되고 필수 권한으로 지정됩니다. 선택적 권한.
{
"name": "Permissions Extension",
...
// required permissions
"permissions": [
"activeTab",
"contextMenus",
"storage"
],
// optional permissions
"optional_permissions": [
"topSites",
"http://www.developer.chrome.com/*"
],
...
"manifest_version": 2
}
확장 프로그램의 핵심 기능에 필요한 권한으로만 필수 권한을 제한합니다. 확장 프로그램이 현재 필요한 것보다 더 많은 권한을 요청해서는 안 됩니다. 미래에 대비하지 않음 권한을 요청할 때 가장 적합합니다
선택적 기능에 필요한 권한은 선택적 권한으로 등록해야 합니다. 이 사용자가 확장 프로그램에 제공할 액세스 권한 및 기능 지정할 수 있습니다
필요한 권한 식별
간단한 확장 프로그램에서 여러 권한을 요청해야 할 수 있으며 많은 권한이 표시됩니다. 경고가 발생합니다. 사용자는 경고가 제한된 확장 프로그램을 신뢰할 가능성이 더 높습니다. 할 수 있습니다.
확장 프로그램의 핵심 기능과 필요한 권한을 파악합니다. 고려 사항 경고가 있는 권한이 필요한 경우 기능을 선택사항으로 만들 수 있습니다.
이벤트로 선택적 권한 트리거
선택적 권한 샘플 확장 프로그램의 핵심 기능은 새 탭 페이지를 재정의하는 것입니다. 한 가지 특성은 오늘의 목표를 표시합니다. 이 기능을 사용하려면 스토리지만 있으면 됩니다. 권한이 있어야 합니다.
확장 프로그램에는 다음과 같은 추가 기능이 있습니다. 사용자의 상위 사이트를 표시합니다. 이 기능을 사용하려면 topSites 권한을 사용하는 것이 좋습니다.
경고가 선택사항인 권한을 사용하는 기능 개발 및 이러한 기능 도입 기능을 통해 위험 없이 확장 프로그램을 자연스럽게 소개할 수 있습니다. 또한 사용자가 확장 프로그램으로 환경을 추가로 맞춤설정할 수 있고 설명합니다.
ActiveTab 권한 대체
activeTab
권한은 사용자가 있는 사이트에 대한 임시 액세스 권한을 부여하고
확장 프로그램을 사용하여 현재 탭에서 "tabs"
권한을 사용합니다. 이를 통해
"<all_urls>"
인 경우가 많으며 설치 시 경고가 표시되지 않습니다.
activeTab을 사용하지 않는 경우:
ActiveTab을 사용하는 경우:
activeTab
권한은
사용자가 확장 프로그램을 호출합니다. 확장 프로그램이 손상된 경우, 공격자는
사용자가 액세스 권한을 얻기 전에 확장 프로그램을 호출해야 하며, 해당 액세스 권한은
탭이 탐색되거나 닫히는 경우
탭에 activeTab
권한이 사용 설정되어 있는 동안 확장 프로그램에서 다음 작업을 할 수 있습니다.
- 해당 탭에서
tabs.executeScript
또는tabs.insertCSS
를 호출합니다. tabs.Tab
객체를 반환하는 API를 통해 탭의 URL, 제목, 파비콘을 가져옵니다.- webRequest를 사용하여 탭의 기본 프레임 출처에 대한 탭의 네트워크 요청을 가로채기 API에 액세스할 수 있습니다. 확장 프로그램은 탭의 기본 프레임 출처에 대한 호스트 권한을 일시적으로 가져옵니다.
다음 사용자 동작을 통해 activeTab
를 사용 설정합니다.
- 브라우저 작업 실행
- 페이지 작업 실행
- 컨텍스트 메뉴 항목 실행
- 명령어 API에서 단축키 실행
- 검색주소창 API에서 추천 검색어 수락
액세스 허용
확장 프로그램이 file://
URL에 액세스해야 하거나 시크릿 모드로 작동해야 하는 경우 사용자는
확장 프로그램 세부정보 페이지(chrome://extensions)에서 해당 기능에 대한 액세스를 사용 설정하세요.
확장 프로그램은
extension.isAllowedIncognitoAccess()
또는 다음이 포함된 file://
URL에서 실행 가능
extension.isAllowedFileSchemeAccess()
권한 이해
권한 경고는 API가 확장 프로그램 사용자에게 부여하는 기능을 설명하기 위해 존재하지만
이러한 경고 중 일부는 처음에는 명확하지 않을 수 있습니다. 예를 들어 "tabs"
관련이 없어 보이는 경고가 표시됩니다. 확장 프로그램은 사용자가 직접 탐색을 읽고
활동에 관해 자세히 알아보세요. chrome.tabs
API는 새 탭을 여는 데만 사용할 수도 있지만 사용할 수도 있습니다.
tabs.Tab 객체를 사용하여 새로 열린 모든 탭과 연결된 URL을 확인할 수 있습니다.
가능하면 선택적 권한 또는 덜 강력한 API를 구현하여 경보를 방지하세요. 있습니다.
경고 보기
확장 프로그램이 압축해제된 파일로 로드되는 경우 권한 경고가 표시되지 않습니다. 보기
확장 프로그램의 권한 경고, chrome://extensions
페이지로 이동하여 개발자 모드가 사용 설정되어 있는지 확인하세요.
광고 확장 패키지를 클릭합니다.
확장 프로그램 루트 디렉터리 필드에 확장 프로그램의 폴더 경로를 지정한 후 확장 프로그램 압축 버튼을 클릭합니다. 최초 패키지인 경우 비공개 키 필드는 무시합니다.
Chrome에서 .crx
파일과 확장 프로그램의 다음 파일이 포함된 .pem
파일, 이렇게 두 개의 파일을 만듭니다.
비공개 키를 생성합니다.
비공개 키를 분실하지 마세요. .pem
파일을 안전한 곳에 보관합니다. 될 것입니다
확장 프로그램을 업데이트해야 합니다.
.crx
파일을 Chrome 확장 프로그램의 관리 페이지에 드롭하여 설치합니다.
.crx
파일을 드롭하면 브라우저에서 확장 프로그램을 추가하고 표시할 수 있는지 묻습니다.
있습니다.
경고가 있는 권한
참고: 권한 표는 최선의 방식으로 업데이트되며 약간의 불일치가 있을 수 있습니다.
표시됩니다. 또한 일부 권한은
다른 권한을 부여할 수 있습니다. 예를 들어 확장 프로그램이"tabs"
"<all_urls>"
를 요청합니다. 확장 프로그램 권한에 대해 표시된 최근 경고를 확인하려면 다음 단계를 따르세요.
경고 보기의 단계를 참조하세요.
권한 | 설명 | 경고 |
---|---|---|
|
확장 프로그램에 모든 호스트에 대한 액세스 권한을 부여합니다. 다음 명령어를 사용하여 호스트 권한을 선언하지 않을 수 있습니다. activeTab 권한이 필요합니다. | 방문하는 웹사이트의 모든 데이터 읽기 및 변경 |
"https://HostName.com/" |
확장 프로그램에 "https://HostName.com/" 에 대한 액세스 권한을 부여합니다. 포드의 상태를 선언하는 것을
activeTab 권한을 사용하여 호스트 권한을 삭제할 수 있습니다. |
HostName.com 의 데이터 읽기 및 변경 |
"bookmarks" |
확장 프로그램에 chrome.bookmarks API에 대한 액세스 권한을 부여합니다. | 북마크 읽기 및 변경하기 |
"clipboardRead" |
확장 프로그램에서 document.execCommand('paste') 를 사용하는 경우 필수입니다. |
복사하여 붙여넣은 데이터 읽기 |
"clipboardWrite" |
확장 프로그램이 document.execCommand('copy') 또는
document.execCommand('cut') 입니다. |
복사하여 붙여넣는 데이터 수정 |
"contentSettings" |
확장 프로그램에 chrome.contentSettings API에 대한 액세스 권한을 부여합니다. | 웹사이트를 제어하는 설정 변경 쿠키, 자바스크립트, 플러그인, 쿠키, 위치정보, 마이크, 카메라 등 |
"debugger" |
확장 프로그램에 chrome.debugger API에 대한 액세스 권한을 부여합니다. |
|
"declarativeNetRequest" |
확장 프로그램에 chrome.declarativeNetRequest API에 대한 액세스 권한을 부여합니다. | 페이지 콘텐츠 차단하기 |
"desktopCapture" |
확장 프로그램에 chrome.desktopCapture API에 대한 액세스 권한을 부여합니다. | 화면 콘텐츠 캡처 |
"downloads" |
확장 프로그램에 chrome.downloads API에 대한 액세스 권한을 부여합니다. | 다운로드 관리하기 |
"geolocation" |
확장 프로그램이 HTML5 위치정보 API를 사용하도록 허용합니다. 이러한 포드는 사용자에게 권한을 요청하지 않아도 됩니다 | 사용자의 실제 위치 감지 |
"history" |
확장 프로그램에 chrome.history API 액세스 권한을 부여합니다. | 방문 기록 읽기 및 변경하기 |
"management" |
확장 프로그램에 chrome.management API에 대한 액세스 권한을 부여합니다. | 앱, 확장 프로그램, 테마 관리 |
"nativeMessaging" |
확장 프로그램에 native Messaging API에 대한 액세스 권한을 부여합니다. | 협업하는 기본 애플리케이션과 통신 |
"notifications" |
확장 프로그램에 chrome.notifications API 액세스 권한을 부여합니다. | 알림 표시 |
"pageCapture" |
확장 프로그램에 chrome.pageCapture API에 대한 액세스 권한을 부여합니다. | 방문하는 웹사이트의 모든 데이터 읽기 및 변경 |
"privacy" |
확장 프로그램에 chrome.privacy API에 대한 액세스 권한을 부여합니다. | 개인 정보 보호 관련 설정 변경하기 |
"proxy" |
확장 프로그램에 chrome.proxy API에 대한 액세스 권한을 부여합니다. | 방문하는 웹사이트의 모든 데이터 읽기 및 변경 |
"system.storage" |
확장 프로그램에 chrome.system.storage API에 대한 액세스 권한을 부여합니다. | 저장 기기 식별 및 꺼내기 |
"tabCapture" |
확장 프로그램에 chrome.tabCapture API에 대한 액세스 권한을 부여합니다. | 방문하는 웹사이트의 모든 데이터 읽기 및 변경 |
"tabs" |
확장 프로그램에 여러 API에서 사용하는 Tab 객체의 권한이 있는 필드에 대한 액세스 권한을 부여합니다.
여기에는 chrome.tabs, chrome.windows가 포함됩니다. 포함
많은 경우 확장 프로그램은 "tabs" 권한을 선언하지 않아도
이러한 API를
사용하는 것이 좋습니다 |
방문 기록 읽기 |
"topSites" |
확장 프로그램에 chrome.topSites API에 대한 액세스 권한을 부여합니다. | 가장 자주 방문한 웹사이트 목록 읽기 |
"ttsEngine" |
확장 프로그램에 chrome.ttsEngine API에 대한 액세스 권한을 부여합니다. | 합성 음성을 사용하여 읽은 모든 텍스트 읽기 |
"webNavigation" |
확장 프로그램에 chrome.webNavigation API에 대한 액세스 권한을 부여합니다. | 방문 기록 읽기 |
권한 업데이트
추가 권한으로 확장 프로그램을 업데이트하면 일시적으로 사용 중지될 수 있습니다. 사용자는 새 경고에 동의한 후 다시 사용 설정할 수 있습니다.
사용자가 이제 tabs 권한이 포함된 확장 프로그램을 수동으로 업데이트할 경우 다음 사항이 적용됩니다. 경고가 표시됩니다.
확장 프로그램이 자동으로 업데이트되는 경우 사용자가 새 프로그램에 동의할 때까지 사용 중지됩니다. 권한을 부여할 수 있습니다
이는 새 기능을 선택사항으로 만들고
매니페스트의 optional_permissions