Nutzer installieren eine Erweiterung nicht, wenn sie ihre Privatsphäre gefährdet oder nach weiteren Berechtigungen fragt, die sie benötigt. Berechtigungsanfragen sollten für Nutzer Sinn ergeben und auf die für die Implementierung der Erweiterung erforderlichen Informationen beschränkt sein. Erweiterungen, die Nutzerdaten erheben oder übertragen, müssen den Richtlinien unter Datenschutz entsprechen.
Schützen und respektieren Sie die Nutzer von Erweiterungen, indem Sie diese Vorsichtsmaßnahmen ergreifen, um ihre Identität zu schützen.
Erforderliche Berechtigungen reduzieren
Die APIs, auf die eine Erweiterung zugreifen kann, sind im Feld permissions
des Manifests angegeben. Je mehr Berechtigungen erteilt werden, desto mehr Möglichkeiten hat ein Angreifer, Informationen abzufangen. Es sollten nur die APIs aufgeführt werden, von denen eine Erweiterung abhängt, und weniger invasive Optionen sollten in Betracht gezogen werden. Je weniger Berechtigungen eine Erweiterung anfordert, desto weniger Berechtigungswarnungen werden einem Nutzer angezeigt. Erweiterungen werden eher installiert, wenn nur eingeschränkte Warnungen vorhanden sind.
Erweiterungen sollten nicht „zukunftssicher“ sein. Zugriff auf Nutzerdaten durch Anfordern von Berechtigungen, die sie derzeit nicht benötigen, aber möglicherweise in Zukunft implementieren. Schließen Sie neue Berechtigungen mit Erweiterungen ein und ziehen Sie in Erwägung, sie als optional festzulegen.
activeTab
Erweiterungen, die Hostberechtigungen zum Einschleusen von Scripts verwenden, können stattdessen häufig activeTab
ersetzen. Die Berechtigung „activeTab
“ gewährt einer Erweiterung vorübergehenden Zugriff auf den derzeit aktiven Tab, und zwar nur dann, wenn der Nutzer die Erweiterung auffordert. Der Zugriff wird unterbrochen, wenn der Nutzer den aktuellen Tab verlässt oder diesen schließt. Es dient als Alternative für viele Anwendungsfälle von <all_urls>
.
{
"name": "Very Secure Extension",
"version": "1.0",
"description": "Example of a Secure Extension",
"permissions": ["activeTab"],
"manifest_version": 3
}
Mit der ActiveTab-Berechtigung werden während der Installation keine Warnmeldungen angezeigt.
Optionale Berechtigungen aktivieren
Bieten Sie Nutzern optionale Berechtigungen an, damit sie selbst entscheiden können, welche Funktionen und Berechtigungen sie von einer Erweiterung benötigen. Wenn eine Funktion für die Hauptfunktion einer Erweiterung nicht erforderlich ist, machen Sie sie optional und verschieben Sie die API oder Domain in das Feld optional_permissions
.
{
"name": "Very Secure Extension",
...
"optional_permissions": [ "tabs", ],
"optional_host_permissions": ["https://www.google.com/" ],
...
}
Mit optionalen Berechtigungen kann eine Erweiterung erklären, warum eine bestimmte Berechtigung erforderlich ist. wenn der Nutzer die jeweilige Funktion aktiviert. Über die Erweiterung kann der Nutzer Funktionen.
Wenn Sie auf OK! klicken, wird das folgende Ereignis im Service Worker ausgelöst.
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();
}
}
);
});
Der Nutzer erhält dann die folgende Anfrage.
Optionale Berechtigungen können auch in einem Erweiterungsupdate implementiert werden. Dadurch wird das neue eine Funktion, die Nutzern zur Verfügung steht, ohne die Erweiterung zu deaktivieren, wie es bei der Aktualisierung mit neuen erforderlichen Berechtigungen.
Nutzerdaten einschränken und schützen
Fordern Sie nur die Mindestdatenmenge an, die für eine Erweiterung erforderlich ist. Je weniger Informationen eine Erweiterung von einem Nutzer abfragt, desto weniger sichtbar wird sie im Falle einer Manipulation der Erweiterung.
Alle angeforderten Nutzerdaten sollten mit Sorgfalt behandelt werden. Speichern und Abrufen von Daten auf einem sicheren Server mit eine registrierte Domain. Verwenden Sie für die Verbindung immer HTTPS und vermeiden Sie, dass vertrauliche Nutzerdaten im Client aufbewahrt werden. der Erweiterung, da der Erweiterungsspeicher nicht verschlüsselt ist.
Datensparmodus und Inkognitomodus
Erweiterungen können Daten über die storage API oder über Serveranfragen speichern, die zu weniger Daten führen. Wenn die Erweiterung etwas speichern muss, überlegen Sie zuerst, ob sie von einem Inkognitofenster. Standardmäßig werden Erweiterungen nicht in Inkognitofenstern ausgeführt.
Der Inkognitomodus verspricht, dass das Fenster keine Spuren hinterlässt. Beim Umgang mit Daten aus Inkognitofenstern, sollten Erweiterungen dieses Versprechen einhalten. Wenn eine Erweiterung normalerweise im Web surfen kann Verlauf aus Inkognitofenstern nicht speichern. Erweiterungen können jedoch Einstellungen speichern, festlegen, ob die Einstellungen im Inkognitomodus aktiviert sind oder nicht.
Um festzustellen, ob sich ein Fenster im Inkognitomodus befindet, prüfen Sie das Attribut incognito
der entsprechenden
Objekt tabs.Tab
oder windows.Window
.
function saveTabData(tab) {
if (tab.incognito) {
return;
} else {
chrome.storage.local.set({data: tab.url});
}
}