Nowa wartość atrybutu piaskownicy allow-same-site-none-cookies w Chrome 135

Natalia Markoborodova
Natalia Markoborodova

Od Chrome 135 możesz używać nowej wartości sandbox:allow-same-site-none-cookies Jeśli ta zasada jest określona, a pliki cookie innych firm są niedostępne, przeglądarka będzie wysyłać tylko pliki cookie SameSite=None w żądaniach HTTP pochodzących z piaskownicy iframe źródła własnego.

Czym jest element iframe umieszczony w piaskownicy?

Elementy iframe w piaskownicy to elementy iframe ze specjalnymi ograniczeniami. Są one traktowane jako pochodzące z null, nieprzezroczystego źródła. Domyślnie potencjalnie szkodliwe funkcje, takie jak skrypty, formularze i wyskakujące okienka, nie są dostępne w ramach elementów iframe umieszczonych w piaskownicy.

Użyj atrybutu sandbox, aby określić, które funkcje powinny być dostępne w piaskownicy iframe. Na przykład:

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

Piaskownica to zawsze dobry pomysł, ponieważ umożliwia szczegółowe wybieranie uprawnień wymaganych do prawidłowego wczytywania treści osadzonych, a jednocześnie ogranicza zakres potencjalnych luk w zabezpieczeniach.

Dlaczego potrzebujemy tych nowych zasad?

Przed wprowadzeniem allow-same-site-none-cookies w elemencie iframe umieszczonym w piaskownicy można było skonfigurować 2 scenariusze dotyczące plików cookie:

  • Bez tokena allow-same-origin w atrybucie sandbox źródło elementu iframe jest serializowane jako null, co sprawia, że wszystkie żądania ze strony w piaskownicy są żądaniami z innej witryny. W tym przypadku w żądaniach będą uwzględniane tylko pliki cookie z wartością SameSite=None.
  • W przypadku tokena allow-same-origin w atrybucie sandbox żądania są traktowane jako pochodzące z rzeczywistego źródła elementu iframe, co umożliwia wysyłanie plików cookie z dowolną wartością SameSite.

Gdy pliki cookie innych firm są zablokowane, ramka iframe w piaskownicy bez atrybutu allow-same-origin nie może wysyłać żadnych plików cookie, chyba że włączysz atrybut allow-same-site-none-cookies.

Element iframe z allow-same-origin będzie nadal mógł uwzględniać pliki cookie w żądaniach pochodzących z tej samej witryny, nawet jeśli pliki cookie innych firm są zablokowane. Jednak cały zasobnik plików cookie pochodzący z danej domeny byłby narażony na potencjalnie szkodliwą aktywność w internecie.

Dzięki allow-same-site-none-cookies ramka iframe może wysyłać w żądaniach HTTP pliki cookie SameSite=None, a potencjalnie poufne pliki cookie SameSite=StrictSameSite=Lax nie będą uwzględniane.

Praktyczny przykład

Weźmy pod uwagę witrynę practice-coding.example, która umożliwia użytkownikom tworzenie i uruchamianie niestandardowych projektów kodowania oraz osadzanie kodu innych użytkowników. Aby korzystać z usługi, użytkownicy muszą się zalogować, co powoduje ustawienie pliku cookie sesji SameSite=Strict.

Inny użytkownik tworzy projekt practice-coding.example/cookie-theft, który inni użytkownicy mogą nieświadomie osadzić jako element iframe w swoich projektach. Jeśli pliki cookie SameSite=StrictSameSite=Lax są widoczne w ramce iframe practice-coding.example/cookie-theft, złośliwy użytkownik może ukraść pliki cookie sesji innych użytkowników.

W takim przypadku właściciel witryny może chcieć ograniczyć dostęp do potencjalnie wrażliwych plików cookie. Mogą jednak nadal zezwalać na pliki cookie SameSite=None w ramkach iframe w piaskownicy. Na przykład practice-coding.example/coding-interviewiframe w piaskownicy może wymagaćSameSite=None plików cookie, aby kandydaci mogli ponownie przejrzeć swój kod. allow-same-site-none-cookies zapobiega ujawnianiu wszystkich plików cookie, a jednocześnie selektywnie zezwala na niezbędne pliki cookie SameSite=None.

Jak zezwolić na SameSite=None tylko w ramach własnych umieszczonych w piaskownicy?

Aby włączyć SameSite=None pliki cookie w żądaniach ze stron piaskownicy własnej domeny, w tagu iframe podaj token allow-same-site-none-cookies. Na przykład:

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

Możesz też ustawić zasady allow-same-site-none-cookies za pomocą nagłówka HTTP Content-Security-Policy:

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

Wypróbuj to na naszej wersji demonstracyjnej.

Angażowanie się i przesyłanie opinii

Zgłoś problem, aby przesłać opinię lub zgłosić problemy, albo dołącz do dyskusji na GitHubie.