Neuer Wert „allow-same-site-none-cookies“ für die Sandbox ab Chrome 135

Natalia Markoborodova
Natalia Markoborodova

Ab Chrome 135 können Sie den neuen sandbox-Wert verwenden: allow-same-site-none-cookies. Wenn diese Richtlinie angegeben ist und keine Drittanbieter-Cookies verfügbar sind, sendet der Browser nur SameSite=None-Cookies in HTTP-Anfragen, die von sandboxed-Iframes von Erstanbietern stammen.

Was ist ein iframe in einer Sandbox?

Sandbox-Iframes sind Iframes mit speziellen Einschränkungen. Sie werden als null, also als nicht transparent, behandelt. Potenziell schädliche Funktionen wie Scripts, Formulare und Pop-ups sind in iFrames mit Sandbox standardmäßig nicht verfügbar.

Mit dem sandbox-Attribut können Sie angeben, welche Funktionen ein Iframe in einer Sandbox haben sollte. Beispiel:

 <iframe sandbox="allow-scripts" src="example-sandboxed-frame.html"/>

Sandboxing ist immer eine gute Idee, da Sie damit die Berechtigungen genau auswählen können, die für das Laden eingebetteter Inhalte erforderlich sind, und gleichzeitig den Umfang potenzieller Exploits einschränken.

Warum ist diese neue Richtlinie erforderlich?

Vor der Einführung von allow-same-site-none-cookies konnten Sie zwei Cookie-Szenarien in einem iFrame mit Sandbox konfigurieren:

  • Ohne das allow-same-origin-Token im sandbox-Attribut wird die Quelle des Iframes als null serialisiert, wodurch alle Anfragen von der Seite im Sandbox-Modus websiteübergreifend werden. In diesem Fall werden nur Cookies mit SameSite=None in Anfragen eingeschlossen.
  • Wenn das allow-same-origin-Token im sandbox-Attribut enthalten ist, werden Anfragen als vom tatsächlichen Ursprung des Iframes stammend behandelt. So können Cookies mit beliebigen SameSite-Werten gesendet werden.

Wenn Drittanbieter-Cookies blockiert sind, kann ein iframe in der Sandbox ohne allow-same-origin keine Cookies senden, es sei denn, Sie aktivieren allow-same-site-none-cookies.

In einem iFrame mit allow-same-origin können weiterhin Cookies in Anfragen auf derselben Website enthalten sein, auch wenn Drittanbieter-Cookies blockiert sind. Allerdings wäre der Cookie-Jar des gesamten Ursprungs potenziellen schädlichen Webaktivitäten ausgesetzt.

Mit allow-same-site-none-cookies kann ein Iframe SameSite=None-Cookies in HTTP-Anfragen senden, während potenziell sensible SameSite=Strict- und SameSite=Lax-Cookies nicht enthalten sind.

Praktisches Beispiel

Angenommen, es gibt eine Website namens practice-coding.example, auf der Nutzer benutzerdefinierte Codierungsprojekte erstellen und ausführen sowie den Code anderer Nutzer einbetten können. Um den Dienst nutzen zu können, müssen sich die Nutzer anmelden. Dadurch wird ein SameSite=Strict-Sitzungscookie gesetzt.

Ein anderer Nutzer erstellt das Projekt practice-coding.example/cookie-theft, das andere Nutzer unwissentlich als Iframe in ihre Projekte einbetten können. Wenn SameSite=Strict- und SameSite=Lax-Cookies für den practice-coding.example/cookie-theft-Iframe freigegeben sind, kann der böswillige Nutzer die Sitzungscookies anderer Nutzer stehlen.

In diesem Fall kann der Websiteinhaber den Zugriff auf potenziell sensible Cookies einschränken. Möglicherweise möchten Sie jedoch weiterhin SameSite=None-Cookies in sandboxed iFrames zulassen. Beispielsweise benötigen practice-coding.example/coding-interview-Sandbox-Iframes möglicherweise SameSite=None-Cookies, damit Bewerber ihren Code noch einmal aufrufen können. allow-same-site-none-cookies verhindert, dass der gesamte Cookie-Jar freigegeben wird, während die erforderlichen SameSite=None-Cookies selektiv zugelassen werden.

Wie kann ich nur SameSite=None in Sandbox-Frames von Erstanbietern zulassen?

Wenn Sie SameSite=None-Cookies in Anfragen von Seiten mit Sandbox-Daten von Drittanbietern aktivieren möchten, geben Sie das allow-same-site-none-cookies-Token im Iframe-Tag an. Beispiel:

 <iframe sandbox="allow-same-site-none-cookies" src="example-sandboxed-page.html"/>

Sie können auch eine allow-same-site-none-cookies-Richtlinie mit einem Content-Security-Policy-HTTP-Header festlegen:

Content-Security-Policy: sandbox allow-same-site-none-cookies;

Probieren Sie es selbst mit unserer Demo aus.

Feedback geben und erhalten

Wenn Sie Feedback geben oder Probleme melden möchten, können Sie ein Problem melden oder an der Diskussion auf GitHub teilnehmen.