Ochrona prywatności użytkownika

Użytkownicy nie instalują rozszerzenia, jeśli narusza to ich prywatność lub prosi o więcej uprawnień, których może potrzebować. Prośby o przyznanie uprawnień powinny być zrozumiałe dla użytkowników i ograniczone do najważniejszych informacji niezbędnych do zaimplementowania rozszerzenia. Rozszerzenia, które zbierają lub przesyłają jakiekolwiek dane użytkownika, muszą być zgodne z polityką prywatności danych użytkownika .

Stosuj te środki ostrożności, aby chronić i szanować użytkowników korzystających z rozszerzeń. Pamiętaj: im mniej danych może uzyskać rozszerzenie, tym mniej danych może przypadkowo wyciec.

Zmniejsz wymagane uprawnienia

Interfejsy API, do których rozszerzenie ma dostęp, są określone w polu uprawnień w pliku manifestu. Im więcej uprawnień przyznasz, tym więcej możliwości przechwycenia informacji musi przechwycić atakujący. Należy wymienić tylko interfejsy API, od których zależy rozszerzenie. Warto rozważyć mniej inwazyjne opcje. Im mniej uprawnień żąda rozszerzenie, tym mniej ostrzeżeń o uprawnieniach wyświetlanych użytkownikowi. Użytkownicy z większym prawdopodobieństwem zainstalują rozszerzenie z ograniczonymi ostrzeżeniami.

Rozszerzenia nie powinny „zapewniać na przyszłość” dostępu do danych użytkownika przez żądanie uprawnień, których obecnie nie potrzebują, ale mogą zostać wdrożone w przyszłości. Dodaj nowe uprawnienia wraz z aktualizacjami rozszerzeń i rozważ ustawienie ich jako opcjonalnych.

activeTab

Rozszerzenia, które korzystają z uprawnień hosta do wstrzykiwania skryptów, często mogą zastąpić parametr activeTab. Uprawnienie activeTab spowoduje tymczasowy dostęp rozszerzenia do obecnie aktywnej karty tylko wtedy, gdy użytkownik je wywoła. Dostęp zostanie zablokowany, gdy użytkownik opuści bieżącą kartę lub ją zamknie. Jest alternatywą 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 komunikatów ostrzegawczych podczas instalacji.

Wybierz uprawnienia opcjonalne

Daj użytkownikom możliwość określenia, których funkcji i uprawnień potrzebują, dodając opcjonalne uprawnienia. Jeśli funkcja nie jest niezbędna do realizowania 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/" ],
  ...
}

Uwzględnienie opcjonalnych uprawnień pozwala rozszerzeniu wyjaśnić, dlaczego potrzebuje danego uprawnienia, gdy użytkownik włączy daną funkcję. Rozszerzenie może umożliwiać użytkownikowi włączenie różnych funkcji.

Zrzut ekranu z wyskakującym okienkiem z prośbą o włączenie uprawnień

Kliknięcie OK! spowoduje uruchomienie następującego zdarzenia w skrypcie działającym w tle.

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();
    }
  });
});

Następnie użytkownik zobaczy prośbę z tą prośbą.

Zrzut ekranu przedstawiający prośbę o opcjonalne uprawnienia.

Opcjonalne uprawnienia można również wdrożyć w aktualizacji rozszerzenia. Spowoduje to udostępnienie nowej funkcji użytkownikom bez wyłączania rozszerzenia, co może się zdarzyć w przypadku aktualizacji z nowymi wymaganymi uprawnieniami.

Ograniczaj i zabezpieczaj dane użytkowników

Poproś o dostęp tylko do minimalnej ilości danych użytkownika, której wymaga rozszerzenie. Im mniej informacji otrzyma rozszerzenie, tym mniej będzie widocznych w przypadku naruszenia bezpieczeństwa rozszerzenia.

Do wszystkich żądanych danych użytkownika należy podchodzić z rozwagą. Przechowuj i pobieraj dane na bezpiecznym serwerze w zarejestrowanej domenie. Do łączenia się zawsze używaj protokołu HTTPS i unikaj przechowywania poufnych danych użytkownika po stronie klienta rozszerzenia, ponieważ pamięć rozszerzenia nie jest szyfrowana.