Ochrona prywatności użytkowników

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.

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

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ę:

Zrzut ekranu z prośbą o uprawnienia opcjonalne.

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.