# Friss bővítmények

> A teszt az oldalról felismert wordpress.org-os bővítmények verzióját és karbantartását nézi: elavult, két éve frissítetlen vagy lezárt bővítménynél frissíteni vagy cserélni kell.

A WordPress-oldalakat a leggyakrabban a bővítményeken keresztül támadják meg, mert sok van belőlük, és nem mindegyiket tartják karban. Ez a teszt azt nézi, hogy az oldal nyilvánosan látszó bővítményei naprakészek-e, és fejlesztik-e még őket.

## Hogyan mérjük

**Mit ismer fel.** A teszt a kezdőoldal HTML-jéből szedi ki a bővítményeket:

- a `script`, `link` és `img` elemek, valamint a lapba ágyazott JSON-beállítások címeiből, ha azok a `/wp-content/plugins/<név>/` útvonalat tartalmazzák (Bedrock-alapú oldalon `/app/plugins/<név>/`). Csak a mért oldalhoz tartozó címek számítanak (a saját gazdagép, annak `www`/csupasz párja és aldomainjei);
- a verziót az adott fájl címének `?ver=` paraméteréből veszi; ha egy bővítménynél több verzió látszik, a leggyakoribbat;
- a `<meta name="generator">` címkéből is olvas verziót (például Elementor, WooCommerce), ez elsőbbséget kap;
- a REST API névterekből is felismer bővítményt, de verzió nélkül.

Legfeljebb 60 bővítményt vizsgál. Ha a verzió megegyezik a WordPress magéval (például a magból betöltött fájlok), azt nem a bővítmény verziójának tekinti.

**Mivel veti össze.** A bővítmény azonosítóját (slug) a wordpress.org bővítménytár nyilvános API-jában keresi. Csak az számít, amit a tár ismer, vagy ami le van zárva. Egy fizetős vagy a tárban nem szereplő bővítményt a teszt kihagy, tehát az nem számít sem hibának, sem megfelelőnek.

**Mi a hiba.**

| Állapot | Mikor |
|---|---|
| Elhagyott | A bővítmény a tárban **le van zárva**, vagy az utolsó frissítése több mint **730 napja** (két év) volt a mérés napjához képest. |
| Elavult | Ismert a telepített verzió, ismert a tár legfrissebb verziója, és a telepített `major.minor` része (például 3.2) kisebb a legfrissebbnél. A javítóverzió-különbséget (3.2.1 és 3.2.4) a teszt nem számolja. |

| Eredmény | Mikor |
|---|---|
| Megfelelő | Volt legalább egy értékelhető bővítmény, és egyik sem elavult vagy elhagyott. |
| Hiba (közepes súlyosság) | Legalább egy elavult vagy elhagyott bővítmény van. A kártya felsorolja őket (legfeljebb 10-et mindkét csoportból). |
| Hiba (magas súlyosság) | Van olyan bővítmény, amelyet a wordpress.org **biztonsági ok** miatt zárt le. |
| Nem értelmezhető | Nem WordPress az oldal, vagy egyetlen felismert bővítményt sem ismer a tár. |

**Mit nem tud a teszt.** Csak azt látja, ami a kezdőoldalon megjelenik: az olyan bővítmény, amely csak a háttérben vagy más oldalakon töltődik, kimarad. A verzió a fájlok `?ver=` paraméteréből jön, ami nem minden bővítménynél egyezik a bővítmény verziójával. Azt sem tudja, hogy egy konkrét verzióban van-e ismert sebezhetőség.

**Mit jelent a lezárás.** A wordpress.org bővítmény-kézikönyve szerint a zárt bővítmény oldala lezárt állapotot mutat, a zip-fájlok nem generálódnak, és senki nem tudja letölteni vagy a kezelőfelületen telepíteni. Zárás oka lehet szabálysértés, biztonsági hiba vagy a szerző kérése, és a zárás okát a tár 60 nappal a lezárás után nyilvánossá teszi.

## Hogyan javítsd

1. **Mentés.** Frissítés előtt mentsd az adatbázist és a fájlokat.
2. **Elavult bővítmény:** frissítsd. Ha nem tudod, hogy mi változott, olvasd el a változásnaplót, és csak ezután frissíts éles oldalon.
3. **Elhagyott bővítmény:** frissítés nincs rá, ezért cserélni kell karbantartott megoldásra. Nézd meg a bővítménytárban az utolsó frissítés dátumát, a támogatási fórumot és azt, hogy mely WordPress-verzióval tesztelték. Ha a bővítményre nincs szükség, töröld.
4. **Biztonsági okból lezárt bővítmény:** haladéktalanul távolítsd el, és keress helyettesítőt.
5. **Rendszeresség:** nézd át havonta a bővítménylistát, és töröld, amit nem használsz.

### WordPress

Az elavult bővítményekre WP-CLI-vel (a WordPress mappájából). Az első sor az adatbázist a home-mappádba menti, a frissítés csak sikeres mentés után fut. A `<bővítmény-azonosító>` helyére a riport kártyája által felsorolt azonosítók kerülnek.

```bash title="Terminál"
(umask 077; wp db export ~/before-update-wp-plugins.sql) &&
wp plugin update <bővítmény-azonosító> [<másik-azonosító>]
```

Ha a mentés sikerült és ellenőrizted, töröld a fájlt. A fájlokról (a `wp-content`, Bedrocknál a `web/app` mappa) is készíts mentést.

**Bedrock-alapú oldalon** a frissítés Composerrel megy: `composer update wpackagist-plugin/<bővítmény-azonosító>`, utána commit és telepítés. A tárban nem szereplő bővítmények csomagneve más, a saját Composer-tárolójuk szerint.

Ha rootként futtatsz parancsot, a létrejött fájlok tulajdonosát állítsd vissza a webfelhasználóra.

## Hogyan ellenőrizd

Parancssorból listázd a bővítményeket a frissítési információkkal:

```bash title="Terminál"
wp plugin list --fields=name,status,version,update,update_version,wporg_status,wporg_last_updated
```

A `update` oszlop jelzi, ha van frissítés, a `wporg_status` és a `wporg_last_updated` a tárbeli állapotot és az utolsó frissítés idejét mutatja. Ezután futtasd újra a riportot. Ha az oldal előtt gyorsítótár van, az újramérés előtt győződj meg róla, hogy a friss oldal töltődik.
