cookies
Ermöglicht Erweiterungen das Abrufen und Setzen von Cookies sowie Benachrichtigungen über deren Änderungen.
Berechtigungen
Um diese API zu verwenden, muss ein Add-on die "cookies" API-Berechtigung in seiner manifest.json Datei angeben, zusammen mit Host-Berechtigungen für alle Webseiten, für die es auf Cookies zugreifen möchte. Das Add-on kann alle Cookies lesen oder schreiben, die von einer URL, die zu den Host-Berechtigungen passt, gelesen oder geschrieben werden könnten. Zum Beispiel:
http://*.example.com/
-
Ein Add-on mit dieser Host-Berechtigung kann:
- Ein nicht-sicheres Cookie für
www.example.com
mit jedem Pfad lesen. - Ein sicheres oder nicht-sicheres Cookie für
www.example.com
mit jedem Pfad setzen.
Es darf nicht:
- Ein sicheres Cookie für
www.example.com
lesen.
- Ein nicht-sicheres Cookie für
http://www.example.com/
-
Ein Add-on mit dieser Host-Berechtigung kann:
- Ein nicht-sicheres Cookie für
www.example.com
mit jedem Pfad lesen. - Ein nicht-sicheres Cookie für
.example.com
mit jedem Pfad lesen. - Ein sicheres oder nicht-sicheres Cookie für
www.example.com
mit jedem Pfad setzen. - Ein sicheres oder nicht-sicheres Cookie für
.example.com
mit jedem Pfad setzen.
Es darf nicht:
- Ein Cookie für
foo.example.com
lesen oder schreiben. - Ein Cookie für
foo.www.example.com
lesen oder schreiben.
- Ein nicht-sicheres Cookie für
*://*.example.com/
-
Ein Add-on mit dieser Host-Berechtigung kann:
- Ein sicheres oder nicht-sicheres Cookie für
www.example.com
mit jedem Pfad lesen oder schreiben.
- Ein sicheres oder nicht-sicheres Cookie für
Tracking-Schutz
Tracker verwenden Drittanbieter-Cookies, also Cookies, die von einer anderen Website als der, auf der Sie sich befinden, gesetzt wurden, um die von Ihnen besuchten Websites zu identifizieren. Zum Beispiel:
- Sie besuchen
a-shopping-site.com
, dasad-tracker.com
verwendet, um seine Werbung im Internet zu liefern.ad-tracker.com
setzt ein Cookie, das mit derad-tracker.com
Domain verbunden ist. Während Sie aufa-shopping-site.com
sind, erhältad-tracker.com
Informationen über die von Ihnen angesehenen Produkte. - Sie besuchen nun
a-news-site.com
, dasad-tracker.com
zur Werbungsschaltung verwendet.ad-tracker.com
liest sein Cookie und verwendet die vona-shopping-site.com
gesammelten Informationen, um zu entscheiden, welche Werbung Ihnen angezeigt wird.
Firefox beinhaltet Funktionen, um das Tracking zu verhindern. Diese Funktionen trennen Cookies, sodass Tracker keine Verbindung zwischen besuchten Websites herstellen können. In dem oben genannten Beispiel kann ad-tracker.com
das beim Besuch von a-shopping-site.com
erstellte Cookie auf a-news-site.com
nicht sehen. Die erste Iteration dieses Schutzes war die Isolation von First-Party-Daten, die jetzt von der dynamischen Partitionierung abgelöst wird.
Hinweis: Die Isolation von First-Party-Daten und die dynamische Partitionierung werden nicht gleichzeitig aktiv sein. Wenn der Benutzer oder eine Erweiterung die Isolation von First-Party-Daten einschaltet, hat diese Vorrang vor der dynamischen Partitionierung. Wenn jedoch das private Surfen die dynamische Partitionierung verwendet, kann das normale Surfen die Cookies nicht partitionieren. Weitere Details finden Sie unter Status der Partitionierung in Firefox.
Speicherpartitionierung
Bei Verwendung der dynamischen Partitionierung partitioniert Firefox den Speicher, auf den über JavaScript-APIs zugegriffen werden kann, nach der obersten Seite und bietet gleichzeitig einen angemessenen Zugang zu nicht partitioniertem Speicher, um übliche Anwendungsfälle zu ermöglichen. Dieses Feature wird schrittweise eingeführt. Weitere Implementierungsdetails finden Sie unter Status der Partitionierung in Firefox.
Speicherpartitionen werden durch die schemafähige URL der obersten Website und, wenn die dynamische Partitionierung aktiv ist, durch den Schlüsselwert, der über die partitionKey.topLevelSite
Eigenschaft in der Cookies-API verfügbar ist, z.B. partitionKey: {topLevelSite: "http://site"}
.
Im Allgemeinen befinden sich oberste Dokumente im nicht partitionierten Speicher, während Drittanbieter-Iframes im partitionierten Speicher sind. Wenn ein Partitionierungsschlüssel nicht ermittelt werden kann, wird der Standardwert (nicht partitionierter Speicher) verwendet. Zum Beispiel können alle HTTP(S)-Seiten als Partitionierungsschlüssel verwendet werden, moz-extension:-
URLs jedoch nicht. Daher verwenden Iframes in Firefox-Erweiterungsdokumenten keinen partitionierten Speicher.
Standardmäßig arbeiten cookies.get()
, cookies.getAll()
, cookies.set()
und cookies.remove()
mit Cookies im nicht partitionierten Speicher. Um mit Cookies im partitionierten Speicher in diesen APIs zu arbeiten, muss topLevelSite
in partitionKey
gesetzt werden. Die Ausnahme ist getAll
, bei dem das Einstellen von partitionKey
ohne topLevelSite
Cookies im partitionierten und nicht partitionierten Speicher zurückgibt. cookies.onChanged
wird für jedes Cookie ausgelöst, auf das die Erweiterung zugreifen kann, einschließlich Cookies im partitionierten Speicher. Um sicherzustellen, dass das richtige Cookie modifiziert wird, sollten Erweiterungen die cookie.partitionKey
Eigenschaft aus dem Ereignis lesen und ihren Wert an cookies.set()
und cookies.remove()
übergeben.
First-Party-Isolation
Wenn die First-Party-Isolation aktiviert ist, werden Cookies durch die Domain der ursprünglichen Seite qualifiziert, die der Benutzer besucht hat (im Wesentlichen die Domain, die dem Benutzer in der URL-Leiste angezeigt wird, auch bekannt als "First-Party-Domain").
Die First-Party-Isolation kann vom Benutzer durch Ändern der Browserkonfiguration aktiviert und von Erweiterungen über die Einstellung firstPartyIsolate
in der privacy
API gesetzt werden. Beachten Sie, dass die First-Party-Isolation standardmäßig im Tor Browser aktiviert ist.
In der cookies
API wird die First-Party-Domain über das Attribut firstPartyDomain
dargestellt. Alle Cookies, die während der aktivierten First-Party-Isolation gesetzt werden, haben dieses Attribut auf die Domain der ursprünglichen Seite gesetzt. In dem vorherigen Beispiel ist dies a-shopping-site.com
für ein Cookie und a-news-site.com
für das andere. Wenn die First-Party-Isolation deaktiviert ist, haben alle von Websites gesetzten Cookies diese Eigenschaft auf einen leeren String gesetzt.
Die cookies.get()
, cookies.getAll()
, cookies.set()
und cookies.remove()
APIs akzeptieren alle eine firstPartyDomain
Option.
Wenn die First-Party-Isolation aktiviert ist, müssen Sie diese Option angeben, sonst schlägt der API-Aufruf fehl und gibt ein abgelehntes Promise zurück. Bei get()
, set()
und remove()
müssen Sie einen String-Wert übergeben. Für getAll()
können Sie hier auch null
übergeben, und dies wird alle Cookies abrufen, unabhängig davon, ob sie einen nicht-leeren Wert für firstPartyDomain
haben oder nicht.
Wenn die First-Party-Isolation deaktiviert ist, ist der firstPartyDomain
Parameter optional und standardmäßig ein leerer String. Ein nicht-leerer String kann verwendet werden, um Cookies der First-Party-Isolation abzurufen oder zu modifizieren. Ebenso führt das Übergeben von null
als firstPartyDomain
an getAll()
dazu, dass alle Cookies zurückgegeben werden.
Typen
-
Stellt Informationen über ein HTTP-Cookie dar.
-
Stellt einen Cookie-Store im Browser dar.
-
Stellt den Grund dar, warum sich ein Cookie geändert hat.
-
Stellt den gleichen Status des Cookies dar.
Methoden
-
Ruft Informationen zu einem einzelnen Cookie ab.
-
Ruft alle Cookies ab, die einem bestimmten Filtersatz entsprechen.
-
Setzt ein Cookie mit den angegebenen Cookie-Daten; kann vorhandene, gleichwertige Cookies überschreiben.
-
Löscht ein Cookie nach Name.
-
Listet alle vorhandenen Cookie-Stores auf.
Ereignishandler
-
Wird ausgelöst, wenn ein Cookie gesetzt oder entfernt wird.
Browser-Kompatibilität
BCD tables only load in the browser
Beispielerweiterungen
Hinweis:
Diese API basiert auf der chrome.cookies
API von Chromium. Diese Dokumentation ist abgeleitet von cookies.json
im Chromium-Code.