Tovább a tartalomhoz

Cross-Origin-Opener-Policy

A teszt azt nézi, hogy az oldal küld-e Cross-Origin-Opener-Policy fejlécet, amely elválasztja az oldalt a más eredetű felugró ablakoktól.

Amikor egy oldal új ablakot nyit (window.open() vagy target="_blank" link), a két ablak alapból egy közös böngészési környezeti csoportban (browsing context group) lehet, és az egyik a másikra hivatkozhat. A Cross-Origin-Opener-Policy (COOP) fejléc ezt szabályozza: elválaszthatja az oldaladat a más eredetű ablakoktól, így azok nem férnek hozzá az ablakodhoz. A riportban a teszt súlyossága alacsony.

A riport a főoldal válaszfejlécét nézi (átirányítások követése után a végső válaszét).

  • Megfelelő: van Cross-Origin-Opener-Policy fejléc nem üres értékkel.
  • Hiba: nincs ilyen fejléc.

A teszt csak a jelenlétet ellenőrzi, az értéket nem: az unsafe-none érték is megfelel, pedig az MDN szerint ez az alapértelmezés, vagyis ugyanazt jelenti, mint a fejléc hiánya.

Az MDN szerint a fejléc értékei:

  • unsafe-none: az alapértelmezés, az oldal bármelyik másik dokumentummal megoszthatja a környezeti csoportját,
  • same-origin-allow-popups: az oldal elkülönül a más eredetű dokumentumoktól, de megtarthatja a hivatkozást azokra a felugró ablakokra, amelyek maguk unsafe-none értéket használnak,
  • same-origin: csak azonos eredetű, szintén COOP-t használó dokumentumokkal oszt környezeti csoportot,
  • noopener-allow-popups: az új dokumentumok még az azonos eredetű nyitótól is elkülönített csoportba kerülnek.

A riport kártyája a same-origin-allow-popups értéket adja. Ennek oka, hogy az MDN szerint pont ezt találták ki arra az esetre, ha az oldal megbízható harmadik fél szolgáltatását nyitja meg felugró ablakban, például bejelentkezéshez (OAuth) vagy fizetéshez. A szigorúbb same-origin az ilyen felugrókat elválasztja az oldaltól, így azok elveszíthetik a kapcsolatot a nyitó oldallal; ezért ne ezt válaszd, ha az oldalad ilyen szolgáltatást használ. A fejléc bekapcsolása után mindenképp próbáld ki a bejelentkezést és a fizetést.

A HTML-szabvány feldolgozási modellje szerint a böngésző a COOP-fejlécet nem biztonságos környezetben nem veszi figyelembe, ezért az oldalnak https-en kell működnie.

Az alábbi kódok a fejlécet egyedül állítják be; ha a riport több hiányzó fejlécet jelez, ugyanabba a blokkba kerülhet mindegyik.

Az nginx server blokkjába. Ha egy location blokkban is van add_header, oda is be kell írni, mert az nginx csak akkor örökli a fejlécet, ha az adott szinten nincs add_header.

nginx
add_header Cross-Origin-Opener-Policy "same-origin-allow-popups" always;
.htaccess
<IfModule mod_headers.c>
Header always set Cross-Origin-Opener-Policy "same-origin-allow-popups"
</IfModule>

Rules → Overview → Create rule → Response Header Transform Rule:

Cloudflare
Set static: Cross-Origin-Opener-Policy = same-origin-allow-popups

Új fájlba: wp-content/mu-plugins/biztonsagi-fejlecek.php (Bedrockon: web/app/mu-plugins/biztonsagi-fejlecek.php):

biztonsagi-fejlecek.php
<?php
add_action( 'send_headers', function () {
header( 'Cross-Origin-Opener-Policy: same-origin-allow-popups' );
} );

Futtasd újra a riportot. Parancssorból:

Terminál
curl -sI https://example.com/ | grep -i cross-origin-opener-policy

Böngészőben próbáld ki a felugró ablakot használó folyamatokat (bejelentkezés külső fiókkal, fizetés), hogy továbbra is működnek-e.

Készült:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások