Bescherm de privacy van gebruikers

Gebruikers installeren geen extensie als deze hun privacy schendt of meer machtigingen vraagt ​​dan nodig lijkt. Machtigingsverzoeken moeten logisch zijn voor gebruikers en beperkt blijven tot de essentiële informatie die nodig is voor de werking van de extensie. Extensies die gebruikersgegevens verzamelen of verzenden, moeten voldoen aan het beleid onder ' Bescherming van de privacy van gebruikers' .

Bescherm en respecteer de gebruikers van de extensie door deze voorzorgsmaatregelen te treffen om hun identiteit te beschermen.

Beperk het aantal benodigde machtigingen.

De API's waartoe een extensie toegang heeft, worden gespecificeerd in het veld ' permissions ' van het manifest . Hoe meer permissies worden verleend, hoe meer mogelijkheden een aanvaller heeft om informatie te onderscheppen. Alleen de API's waarvan een extensie afhankelijk is, moeten worden vermeld, en er moet worden gekeken naar minder ingrijpende opties. Hoe minder permissies een extensie aanvraagt, hoe minder waarschuwingen over permissies aan de gebruiker worden getoond. Gebruikers zullen eerder een extensie installeren met beperkte waarschuwingen.

Extensies mogen de toegang tot gebruikersgegevens niet "toekomstbestendig" maken door machtigingen aan te vragen die ze momenteel niet nodig hebben, maar in de toekomst mogelijk wel zullen implementeren. Voeg nieuwe machtigingen toe aan extensie-updates en overweeg om ze optioneel te maken.

actiefTabblad

Extensies die hostrechten gebruiken om scripts te injecteren, kunnen vaak activeTab vervangen. De activeTab -machtiging geeft een extensie tijdelijke toegang tot het actieve tabblad, alleen wanneer de gebruiker de extensie aanroept . De toegang wordt verbroken wanneer de gebruiker het huidige tabblad verlaat of sluit. Het dient als alternatief voor veel toepassingen van <all_urls> .

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

De activeTab-machtiging geeft geen waarschuwingsberichten weer tijdens de installatie.

Kies voor optionele machtigingen.

Geef gebruikers de mogelijkheid om te kiezen welke functies en machtigingen ze nodig hebben van een extensie door optionele machtigingen toe te voegen. Als een functie niet essentieel is voor de kernfunctionaliteit van een extensie, maak deze dan optioneel en verplaats de API of het domein naar het veld optional_permissions .

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

Door optionele machtigingen toe te voegen, kan een extensie uitleggen waarom een ​​bepaalde machtiging nodig is wanneer de gebruiker de betreffende functie inschakelt. De extensie kan de gebruiker de mogelijkheid bieden om functies in te schakelen.

Een schermafbeelding van een pop-up waarin wordt gevraagd om machtigingen in te schakelen.

Door op OK! te klikken, wordt de volgende gebeurtenis in de service worker geactiveerd.

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

De gebruiker krijgt vervolgens het volgende verzoek te zien.

Een schermafbeelding van een optioneel verzoek om machtigingen.

Optionele machtigingen kunnen ook worden geïmplementeerd in een extensie-update. Hierdoor wordt de nieuwe functie beschikbaar voor gebruikers zonder dat de extensie wordt uitgeschakeld, wat wel het geval kan zijn bij een update met nieuwe vereiste machtigingen.

Beperk en beveilig gebruikersinformatie

Vraag alleen de minimale hoeveelheid gegevens op die een extensie nodig heeft. Hoe minder informatie een extensie van een gebruiker vraagt, hoe kleiner de kans op een beveiligingslek als de extensie gehackt wordt.

Alle opgevraagde gebruikersgegevens moeten met zorg worden behandeld. Bewaar en haal gegevens op via een beveiligde server met een geregistreerd domein. Gebruik altijd HTTPS voor de verbinding en vermijd het bewaren van gevoelige gebruikersgegevens aan de clientzijde van een extensie, aangezien de opslag van extensies daar niet versleuteld is.

Gegevens opslaan en incognito-modus

Extensies kunnen gegevens opslaan met behulp van de opslag- API of door serververzoeken te doen die resulteren in het opslaan van gegevens. Wanneer de extensie iets moet opslaan, moet eerst worden nagegaan of dit vanuit een incognito-venster gebeurt. Standaard werken extensies niet in incognito-vensters.

De incognitomodus belooft dat het venster geen sporen achterlaat. Bij het verwerken van gegevens uit incognitovensters moeten extensies deze belofte nakomen. Als een extensie normaal gesproken de browsegeschiedenis opslaat, sla dan geen geschiedenis op uit incognitovensters. Extensies kunnen echter wel instellingen van elk venster opslaan, incognito of niet.

Om te detecteren of een venster in de incognitomodus staat, controleert u de eigenschap incognito van het betreffende tabs.Tab of windows.Window object.

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