Użytkownicy nie zainstalują rozszerzenia, jeśli narusza ono ich prywatność lub prosi o więcej uprawnień, niż wydaje się potrzebne. Prośby o przyznanie uprawnień powinny być zrozumiałe dla użytkowników i ograniczone do najważniejszych informacji niezbędnych do wdrożenia rozszerzenia. Rozszerzenia, które zbierają lub przesyłają dane użytkownika muszą być zgodne z zasadami dotyczącymi prywatności danych użytkownika .
Chroń użytkowników rozszerzenia i szanuj ich prywatność, stosując te środki ostrożności, aby zapewnić im bezpieczeństwo. Pamiętaj: im mniejszy dostęp do danych ma rozszerzenie, tym mniejsze ryzyko przypadkowego wycieku danych.
Ograniczanie wymaganych uprawnień
Interfejsy API, do których rozszerzenie może uzyskać dostęp, są określone w polu uprawnień w pliku manifestu. Im więcej uprawnień zostanie przyznanych, tym więcej możliwości przechwycenia informacji będzie miał atakujący. Należy wymienić tylko te interfejsy API, od których zależy rozszerzenie, i rozważyć mniej inwazyjne opcje. Im mniej uprawnień zażąda rozszerzenie, tym mniej ostrzeżeń o uprawnieniach będzie wyświetlanych użytkownikowi. Użytkownicy chętniej zainstalują rozszerzenie z ograniczoną liczbą ostrzeżeń.
Rozszerzenia nie powinny „zabezpieczać” dostępu do danych użytkownika, prosząc o uprawnienia, których obecnie nie potrzebują, ale mogą wdrożyć w przyszłości. Dołączaj nowe uprawnienia do aktualizacji rozszerzeń i rozważ ich opcjonalność.
activeTab
Rozszerzenia korzystające z uprawnień do hosta w celu wstrzykiwania skryptów mogą często zastępować je uprawnieniem activeTab.
Uprawnienie activeTab przyznaje rozszerzeniu tymczasowy dostęp do aktualnie aktywnej karty tylko wtedy, gdy użytkownik wywoła rozszerzenie. Dostęp jest odcinany, gdy użytkownik przejdzie na inną kartę lub ją zamknie. Jest to alternatywa dla wielu zastosowań <all_urls>.
{
"name": "Very Secure Extension",
"version": "1.0",
"description": "Example of a Secure Extension",
"permissions": ["activeTab"],
"manifest_version": 2
}
Uprawnienie activeTab nie wyświetla żadnych ostrzeżeń podczas instalacji.
Wybieranie uprawnień opcjonalnych
Daj użytkownikom możliwość wyboru funkcji i uprawnień, których potrzebują w rozszerzeniu, poprzez dodanie
uprawnień opcjonalnych. Jeśli funkcja nie jest niezbędna do głównej funkcjonalności rozszerzenia, ustaw ją jako opcjonalną i przenieś interfejs API lub domenę do pola optional_permissions.
{
"name": "Very Secure Extension",
...
"optional_permissions": [ "tabs", "https://www.google.com/" ],
...
}
Dodanie uprawnień opcjonalnych pozwala rozszerzeniu wyjaśnić, dlaczego potrzebuje określonego uprawnienia, gdy użytkownik włączy odpowiednią funkcję. Rozszerzenie może zaoferować użytkownikowi możliwość włączenia funkcji.

Kliknięcie OK spowoduje wywołanie w skrypcie działającym w tle tego zdarzenia:
document.querySelector('#button').addEventListener('click', function(event) {
// Permissions must be requested from inside a user gesture, like a button's
// click handler.
chrome.permissions.request({
permissions: ['tabs'],
origins: ['https://www.google.com/']
}, function(granted) {
// The callback argument will be true if the user granted the permissions.
if (granted) {
// doSomething();
} else {
// doSomethingElse();
}
});
});
Użytkownik zobaczy wtedy taką prośbę:

Uprawnienia opcjonalne można też wdrożyć w aktualizacji rozszerzenia. Dzięki temu nowa funkcja będzie dostępna dla użytkowników bez wyłączania rozszerzenia, co może się zdarzyć w przypadku aktualizacji z nowymi wymaganymi uprawnieniami.
Ograniczanie i zabezpieczanie informacji o użytkownikach
Proś tylko o minimalną ilość danych użytkownika, których potrzebuje rozszerzenie. Im mniej informacji rozszerzenie prosi użytkownika, tym mniejsze ryzyko, że zostaną one ujawnione, jeśli rozszerzenie zostanie naruszone.
Wszystkie żądane dane użytkownika należy traktować z należytą starannością. Przechowuj i pobieraj dane na bezpiecznym serwerze z zarejestrowaną domeną. Zawsze używaj protokołu HTTPS do łączenia się i unikaj przechowywania wrażliwych danych użytkownika po stronie klienta rozszerzenia, ponieważ pamięć rozszerzenia nie jest szyfrowana.