# Süti-domain egyezik

> Azt nézzük, hogy az oldal sütijeinek Domain értéke egyezik-e az oldal saját domainjével; ha nem, a böngésző elutasítja a sütit.

A süti (cookie) a `Set-Cookie` fejléccel jön létre, és tartalmazhat egy `Domain` attribútumot, ami megmondja, mely címekre menjen el a süti. Ha a `Domain` értéke nem az oldalé (vagy annak szülő-domainje), a böngésző **eldobja a sütit**: nem lesz sem bejelentkezés, sem kosár, sem megjegyzett beállítás, és a hibára nincs látható üzenet.

Tipikus ok egy domainváltás, amely után a régi domain bent maradt a beállításban, vagy egy teszt-, fejlesztői címről átmásolt konfiguráció.

## Hogyan mérjük

A riport a nyitóoldal végső válaszának `Set-Cookie` fejléceit vizsgálja. Minden olyan sütit, amelynek van `Domain` attribútuma, összevet az oldal hostjával:

- A `Domain` értékéből az elején álló pont (`.pelda.hu`) elhagyódik, és kisbetűssé válik.
- **Megfelelő:** a `Domain` megegyezik az oldal hostjával, vagy az oldal host a `Domain` aldomainje (például a host `www.pelda.hu`, a `Domain` `pelda.hu`).
- **Hiba:** a `Domain` más domain, és az oldal hostja sem aldomainje annak. A riport kilistázza a hibás sütik nevét (legfeljebb 10-et).
- Domain nélküli sütik (ez a gyakori eset) megfelelőnek számítanak.
- **Nem értékelhető:** ha a válasz egyáltalán nem állít be sütit.

A teszt csak a nyitóoldal válaszát nézi, a későbbi oldalakon (bejelentkezés, kosár) beállított sütiket nem. A nyilvános utótagokat (public suffix, például `.com`) sem veszi figyelembe, pedig a böngészők az ilyen `Domain` értéket is elutasítják.

## Hogyan javítsd

A legegyszerűbb és legbiztonságosabb: ne adj meg `Domain` attribútumot. Ilyenkor a süti csak annak a hostnak megy el, amelyik beállította (host-only süti). Csak akkor add meg, ha a sütit az aldomainek között is meg kell osztani, és akkor is az oldal saját domainjét vagy annak szülő-domainjét használd.

1. **Nézd meg, melyik süti hibás** (a riport kiírja a nevét), és hogy ki állítja be: a WordPress, egy bővítmény, a PHP-munkamenet, vagy a webszerver.
2. **Javítsd a forrásnál** az alábbiak szerint.

### WordPress

Ha a `wp-config.php`-ben van `COOKIE_DOMAIN` megadva, és az nem az oldalad domainje, javítsd vagy töröld:

```php title="wp-config.php"
define( 'COOKIE_DOMAIN', 'www.pelda.hu' );
```

A legtöbb oldalnál a sor nem is kell; ilyenkor a WordPress magától kezeli a domaint. Egy másik domainről átmásolt `wp-config.php`-ben szokott megmaradni a régi érték.

### PHP

A PHP-munkamenet sütijének domainjét a `php.ini`-ben a `session.cookie_domain` állítja. Az alapérték üres, ami host-only sütit jelent. Ha beállítottad, az a te domainedet tartalmazza; egyébként hagyd üresen. Saját kódban a `setcookie()` `domain` paramétere, a munkamenetnél a `session_set_cookie_params()` ugyanígy működik.

### Bővítmények és külső szolgáltatások

Ha a hibás süti nem a WordPresstől vagy a PHP-től jön, hanem egy bővítménytől (vagy a webszerver előtti réteg állítja), a bővítmény beállításaiban keresd a domain, süti-domain mezőt, és javítsd a saját domainedre.

## Hogyan ellenőrizd

Futtasd újra a riportot. Parancssorból megnézheted a beállított sütiket:

```bash title="Terminál"
curl -sI https://pelda.hu/ | grep -i "^set-cookie"
```

Minden sor `Domain=` részét vesd össze az oldal címével. A böngésző fejlesztői eszközeinek Alkalmazás (Application) → Sütik (Cookies) paneljén is látod a sütik domainjét, és azt, ha egy sütit a böngésző elutasított.
