Modul 6 · 6.2
Frissítések, biztonsági mentések és szerepkörök
Modul 6: Üzemeltetés és biztonság · Olvasási idő: 11 perc
Tanulási cél: A lecke után Ön úgy tudja frissíteni és menteni a WooCommerce-webáruházat, hogy egyetlen rendelés se vesszen el, és úgy tudja elosztani a jogosultságokat, hogy mindenki csak azt tehesse, amire szüksége van.
Kulcsfogalmak: nagy és kis frissítés, adatbázis-frissítés, bővítmények és kompatibilitás, sablonfelülírások (template overrides), elavult sablonok, biztonsági mentés a frissítés előtt, a mentés és a visszaállítás között beérkezett rendelések, HPOS-táblák, Bolt kezelő (Shop manager) és Vásárló (Customer) szerepkör, legkisebb jogosultság elve, verziószámok megjelenítése, xmlrpc.php
Miben más egy webáruház, mint egy átlagos webhely
A WordPress-tanfolyam (7.2., 8.1. és 8.2. lecke) bemutatja, hogyan frissítse a WordPresst, hogyan készítsen biztonsági mentést és hogyan állítsa vissza. Webáruháznál mindez érvényes, egy nagy különbséggel: az adatbázis egész nap folyamatosan változik. Minden rendelés, minden vásárló, minden készletváltozás és minden fizetés bekerül. Egy tájékoztató webhelyen a tegnapi mentéssel legfeljebb egy bejegyzést veszít. Egy webáruházban viszont már kifizetett rendeléseket.
Ezért két alapszabály szól ebben a leckében:
- Webáruháznál a visszaállítás az utolsó lépés, nem az első.
- Terv szerint frissítsen, ne "gyorsan két dolog között, péntek délután".
A WooCommerce frissítései
A WooCommerce rendszeresen ad ki új verziókat, közöttük kisebb javításokkal. A verziószám három részből áll, például 11.2.2. Ha az utolsó szám változik, az kisebb javítás vagy biztonsági frissítés; ha az első vagy a második szám változik, az új funkciókat hoz, és néha olyan változásokat, amelyekhez a bővítményeknek vagy a témának alkalmazkodniuk kell.
A WooCommerce frissítésekor három dolog történik, amelyet egy átlagos bővítménynél ritkábban lát:
- Adatbázis-frissítés. Előfordul, hogy a WooCommerce-nek módosítania kell a táblákat. Ilyenkor az adminfelületen értesítést lát arról, hogy az adatbázis frissül; ez a háttérben, az ütemezett műveleteken keresztül fut (7.3. lecke). Ne szakítsa meg, és a WooCommerce > Állapot oldalon ellenőrizze, hogy befejeződött-e.
- A bővítményeknek is lépést kell tartaniuk. A fizetési bővítmények, szállítási és könyvelési integrációk jelzik, melyik WooCommerce-verzióig tesztelték őket. A bővítmények képernyőjén figyelmeztetést lát, ha egy bővítmény nem említi az újabb verziót. Frissítés előtt olvassa el a fizetési bővítménye változásnaplóját: ha a fizetési bővítmény elromlik, a webáruház nem tud eladni.
- Sablonfelülírások. Sok téma saját másolatot tartalmaz a WooCommerce-sablonokról (a témában lévő
woocommerce/mappa). Ha a WooCommerce módosítja az eredetit, a másolat elavulttá válik. A WooCommerce > Állapot (rendszerállapot) oldal alján, a témánál látható, mely sablonokat írja felül a téma, és melyek elavultak. Az elavult sablonokból hiányozhatnak új mezők, vagy hibát okozhatnak. Frissítse a témát, vagy kérjen frissítést a készítőjétől.
A kis frissítéseket (utolsó szám) lehetőleg gyorsan telepítse, legjobb automatikusan, mert gyakran biztonsági hibákat javítanak. A nagy frissítéseket először stagingen tesztelje (7.3. lecke), csendes időszakban, közvetlenül előtte készített biztonsági mentéssel.
Biztonsági mentések: mi vész el a visszaállításkor
Egy példa. A Theehuis Example minden éjjel 03.00 órakor biztonsági mentést készít. Kedden 10.00 órakor az adminisztrátor frissíti a WooCommerce-t, és utána a termékoldal hibát mutat. 03.00 és 10.00 között hat rendelés érkezett, a fizetési szolgáltatón keresztül kifizetve. Ha most visszaállítja a 03.00-s mentést, akkor:
- az a hat rendelés eltűnik az adatbázisból, miközben a pénz ott van a szolgáltatónál;
- a webáruház már nem tudja, hogy a készlet alacsonyabb;
- a webáruház később még kaphat értesítéseket (webhookokat) a szolgáltatótól olyan rendelésekről, amelyeket nem ismer.
Ezért:
- Készítsen biztonsági mentést közvetlenül a frissítés előtt, ne csak éjszaka. Így a kiesés a lehető legkisebb.
- Visszaállításkor jegyezze fel, mely rendelések érkeztek a mentés után (az "Új rendelés" e-mailekből és a szolgáltató irányítópultjáról), és utána állítsa vissza őket kézzel, vagy exportálja őket előre.
- Lehetőleg csak a fájlokat állítsa vissza (a régi bővítmény- vagy témamappát), ha a hiba a kódban van, és hagyja érintetlenül az adatbázist. Egy frissítést gyakran úgy lehet visszavonni, hogy a bővítmény előző verzióját telepíti; a WordPress-tanfolyam 8.2. leckéje bemutatja a célzott visszaállítást. Ha a frissítés már módosította az adatbázist, a régi verzió lehet, hogy már nem működik vele: ezért kell előbb stagingen tesztelni.
- Mentsen gyakrabban, mint egy átlagos webhelynél: egy egész nap rendeléseket fogadó webáruháznak legalább naponta, lehetőleg gyakrabban kell adatbázis-mentés, és egy másolat a szerveren kívül is (3-2-1 szabály, WordPress-tanfolyam 8.1. lecke).
A WooCommerce 8.2 óta az új áruházakban a rendelések saját táblákban vannak (HPOS, 1.2. lecke), például a wp_wc_orders táblában. Ha egy mentőbővítmény csak a "bejegyzéseket" viszi magával, vagy név alapján választja ki a táblákat, ezeket a táblákat is mentenie kell. Egy próba-visszaállításnál (WordPress-tanfolyam, 8.2. lecke) ellenőrizze, hogy a rendelések valóban benne vannak-e.
A WebOké-nál a WebOké Backups minden éjjel biztonsági mentést készít, amelyet 30 napig egy másik adatközpontban őriz (DA 16.1); ezen felül a frissítés előtt saját maga is készíthet mentést a DirectAdminban vagy az Installatronban. Más tárhelyszolgáltatóknál ez hasonlóan működik; kérdezze meg, milyen gyakran és mennyi ideig mentenek.
Szerepkörök: ki mit tehet
A WooCommerce két szerepkört ad hozzá a WordPresshez (WordPress-tanfolyam, 3.3. lecke):
- Vásárló (Customer): fiókkal rendelkező vásárló. Csak a saját rendeléseit és adatait látja. Ennek a szerepkörnek soha ne adjon adminisztrátori jogokat.
- Bolt kezelő (Shop manager): kezelheti a termékeket, rendeléseket, vásárlókat, kuponokat és a WooCommerce beállításait, de nem telepíthet bővítményeket, és nem módosíthatja a témát.
Azoknak a munkatársaknak, akik rendeléseket csomagolnak, vásárlói kérdésekre válaszolnak vagy termékeket visznek fel, elég a Bolt kezelő szerepkör. Az Adminisztrátor csak annak való, aki a technikát intézi. Minden munkatársnak saját fiók jár, kétlépcsős azonosítással (WordPress-tanfolyam, 7.3. lecke); ne legyen közös "bolt" fiók. A Bolt kezelő minden vásárlói adatot lát, ezért törölje a fiókokat, ha valaki távozik.
Az API-kulcsok (2.4. lecke) szintén jogosultságnak számítanak: egy integrációnak csak olvasási jogot adjon, ha nem kell írnia, és törölje a már nem használt kulcsokat.
Amit a webáruháza mindenkinek megmutat
A támadók olyan webáruházakat keresnek, amelyek régi WooCommerce-verziót vagy ismert sebezhetőségű fizetési bővítményt használnak. A WooCommerce alapértelmezés szerint egy <meta name="generator" content="WooCommerce 11.2.2"> sort helyez el a forráskódban, és a verzió a stíluslapok után is ott van (?ver=). Az elrejtés kis nyereség, a frissítés nagy. Egy naprakész webáruháznak alig kell aggódnia a látható verziószám miatt. Egy lemaradt webáruházat viszont elárul.
Az xmlrpc.php fájl egy régi interfész, amelyen keresztül alkalmazások jelentkeznek be a WordPressbe. Gyakran visszaélnek vele jelszavak kitalálására. Ha nem használ olyan alkalmazást vagy szolgáltatást, amelynek szüksége van rá, zárja le (a WebOké-nál alapértelmezés szerint le van zárva, KB 169). Egy nyitott xmlrpc.php egy átlagos böngészős lekérésre ezzel válaszol: "XML-RPC server accepts POST requests only.", 405-ös állapotkóddal. Lezárt állapotban 403-at vagy 404-et ad.
Összefoglalás
- A webáruház adatbázisa egész nap változik: a visszaállítás már kifizetett rendelésekbe kerül.
- Kis frissítések gyorsan, nagy frissítések először stagingen; figyeljen az adatbázis-frissítésre, a bővítményekre és az elavult sablonokra a WooCommerce > Állapot oldalon.
- Mentsen közvetlenül a frissítés előtt, és gyakrabban, mint egy átlagos webhelynél; ellenőrizze, hogy a rendeléstáblák is bekerülnek a mentésbe.
- A munkatársak Bolt kezelő szerepkört kapnak, nem Adminisztrátort; mindenki saját fiókkal, kétlépcsős azonosítással.
- A verziók elrejtése keveset segít, a frissítés sokat; zárja le az xmlrpc.php-t, ha nem használja.
Kvíz
Feladat
Feladat A6.2: Mutat verziószámokat a webáruháza? Adja meg a webáruháza címét, a WordPress-verzióját (Vezérlőpult > Frissítések) és a WooCommerce-verzióját (Bővítmények). A program lekéri a kezdőlapot és a hírcsatornát, valamint a /wp-content/plugins/woocommerce/readme.txt fájlt (csak az első 2 kB-ot, a "Stable tag" sort). A WordPress és a WooCommerce verziószámait keresi a generator-sorokban és a WooCommerce stíluslapjai mögötti ?ver= részben, és lekéri a legújabb verziókat a wordpress.org oldalról. Zöld, ha a verziói a legújabbak, és a látható adatok ezzel egyeznek. Narancs, ha csak egy kis frissítés vár telepítésre, vagy ha a verzió látható, de naprakész. Piros, ha egy nagy verzióval le van maradva, ha a látható verzió eltér attól, amit megadott (más fut, mint amire gondol), vagy érvénytelen adat esetén.
Feladat A6.2b: Le van zárva az xmlrpc? Adja meg a webáruháza címét, és jelölje be, ha olyan alkalmazást vagy szolgáltatást használ, amelynek szüksége van az xmlrpc.php-re. A program egy átlagos GET kéréssel lekéri a /xmlrpc.php címet, semmit sem küld el. Zöld 401, 403, 404, 410, átirányítás vagy átlagos HTML-oldal esetén. Piros 405 és a "XML-RPC server accepts POST requests only." szöveg esetén, ha nincs bejelölve; narancs, ha jelezte, hogy szüksége van rá. Azt is ellenőrzi, hogy a felhasználónevek listája nyilvános-e a /wp-json/wp/v2/users címen (narancs, ha nevek láthatók).
A zöld pipa azt jelenti, hogy ez az ellenőrzés most rendben van, nem azt, hogy a webáruháza biztonságos.
Bővebben olvasva
A panelen belüli lépések a WebOké-ra vonatkoznak; más szolgáltatóknál hasonlóan működik.
- Ingyenes WordPress-tanfolyam 7.2: Frissítések nyomon követése
- Ingyenes WordPress-tanfolyam 8.1: Biztonsági mentések: mit, hová és milyen gyakran
- Ingyenes WordPress-tanfolyam 8.2: Visszaállítás és tesztelés
- Ingyenes WordPress-tanfolyam 3.3: Felhasználók és szerepkörök
- DirectAdmin útmutató 16.1: Milyen biztonsági mentések érhetők el a WebOkénál
- WebOké Biztonsági mentések: biztonsági mentés megtekintése, visszaállítása vagy letöltése
- WordPress: az xmlrpc.php nem érhető el
- High Performance Order Storage (developer.woocommerce.com, angol nyelven): https://developer.woocommerce.com/docs/features/orders/high-performance-order-storage/
