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. Gdy ta zasada jest określona, a pliki cookie firm zewnętrznych są niedostępne, przeglądarka będzie wysyłać tylko pliki cookie SameSite=None w żądaniach HTTP pochodzących z ramek iframe w piaskownicy źródeł własnych.

Co to jest element iframe umieszczony w piaskownicy?

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

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

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

Używanie piaskownicy jest zawsze dobrym pomysłem, ponieważ pozwala precyzyjnie wybrać uprawnienia wymagane do prawidłowego wczytania treści, które są w niej umieszczone, ograniczając jednocześnie zakres potencjalnych luk.

Dlaczego potrzebujemy tych nowych zasad?

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

  • Bez tokena allow-same-origin w atrybucie sandbox pochodzenie elementu iframe jest serializowane jako null, co powoduje, że wszystkie żądania z witryny w piaskownicy są żądaniami z innej witryny. W takim przypadku w żądaniach będą uwzględniane tylko pliki cookie o wartości SameSite=None.
  • Jeśli w atrybucie sandbox znajduje się token allow-same-origin, żądania są traktowane jako pochodzące z prawdziwego punktu początkowego iframe, co umożliwia wysyłanie plików cookie z dowolną wartością SameSite.

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

Element iframe z allow-same-origin będzie nadal mógł zawierać pliki cookie w żądaniach dotyczących tej samej witryny, nawet jeśli pliki cookie innych firm są zablokowane. Jednak cały zestaw plików cookie domeny będzie narażony na potencjalnie szkodliwą aktywność w sieci.

Dzięki allow-same-site-none-cookies element iframe może wysyłać pliki cookie SameSite=None w żądaniach HTTP, ale nie będzie zawierać potencjalnie poufnych plików cookie SameSite=Strict ani SameSite=Lax.

Przykład praktyczny

Weź pod uwagę witrynę practice-coding.example, która umożliwia użytkownikom tworzenie i uruchamianie niestandardowych projektów kodowania oraz umieszczanie 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 tag iframe w swoich projektach. Jeśli pliki cookie SameSite=StrictSameSite=Lax są dostępne dla iframe practice-coding.example/cookie-theft, użytkownik o złośliwych zamiarach 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 poufnych plików cookie. Może jednak chcieć zezwolić na pliki cookie SameSite=None w ramach sandboxowanych ramek iframe. Na przykład practice-coding.example/coding-interview piaskownica iframe może wymagać plików cookie SameSite=None, aby kandydaci mogli ponownie sprawdzić swój kod. allow-same-site-none-cookies zapobiega ujawnianiu całego zbiornika plików cookie, zezwalając jednocześnie na niezbędne pliki cookie SameSite=None.

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

Aby włączyć pliki cookie SameSite=None w żądaniach z własnych stron w piaskownicy, 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"/>

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

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

Wypróbuj to samodzielnie, korzystając z naszego demo.

Zaangażowanie i przesyłanie opinii

Aby przesłać opinię lub zgłosić problem, zgłoś go na GitHubzie lub dołącz do dyskusji na GitHubie.