Modul 6 · 6.2
Aktualizácie, zálohy a roly
Modul 6: Správa a bezpečnosť · Čas čítania: 11 min.
Cieľ lekcie: Po tejto lekcii dokážete aktualizovať a zálohovať e-shop WooCommerce bez straty objednávok a rozdeliť oprávnenia tak, aby každý mohol robiť len to, čo potrebuje.
Kľúčové pojmy: veľká a malá aktualizácia, aktualizácia databázy, rozšírenia a kompatibilita, prepísané šablóny (template overrides), zastarané šablóny, záloha pred aktualizáciou, objednávky medzi zálohou a obnovením, tabuľky HPOS, roly Správca obchodu (Shop manager) a Zákazník (Customer), najmenšie oprávnenia, zobrazovanie verzií, xmlrpc.php
Prečo je e-shop iný ako bežná stránka
V kurze WordPress (lekcie 7.2, 8.1 a 8.2) nájdete, ako WordPress aktualizovať, ako robiť zálohy a ako ich obnoviť. Pri e-shope platí to všetko, s jedným veľkým rozdielom: databáza sa mení celý deň. Ukladá sa do nej každá objednávka, každý zákazník, každá zmena zásob a každá platba. Pri informačnej stránke stratíte so včerajšou zálohou nanajvýš jeden príspevok. Pri e-shope stratíte objednávky, ktoré už boli zaplatené.
Preto dve základné pravidlá tejto lekcie:
- Obnovenie zálohy je pri e-shope posledný krok, nie prvý.
- Aktualizujte podľa plánu, nie „rýchlo medzi inými vecami v piatok popoludní“.
Aktualizácie WooCommerce
WooCommerce pravidelne vydáva nové verzie a medzi nimi drobné opravy. Číslo verzie má tri časti, napríklad 11.2.2. Zmena posledného čísla znamená drobnú opravu alebo bezpečnostnú aktualizáciu; zmena prvého alebo druhého čísla prináša nové funkcie a niekedy aj zmeny, na ktoré sa musia prispôsobiť rozšírenia alebo vaša téma.
Pri aktualizácii WooCommerce sa dejú tri veci, ktoré pri bežnom plugine vidíte menej často:
- Aktualizácia databázy. Niekedy musí WooCommerce upraviť tabuľky. V administrácii sa potom zobrazí upozornenie, že sa databáza aktualizuje; prebieha to na pozadí cez naplánované akcie (lekcia 7.3). Neprerušujte to a v časti WooCommerce > Stav skontrolujte, či je hotovo.
- Rozšírenia musia držať krok. Platobné pluginy, prepojenia na dopravcov a účtovné prepojenia uvádzajú, do ktorej verzie WooCommerce boli otestované. Na obrazovke pluginov sa zobrazí upozornenie, ak rozšírenie novšiu verziu neuvádza. Pred aktualizáciou si prečítajte zoznam zmien svojho platobného pluginu: nefunkčný platobný plugin znamená e-shop, ktorý nepredáva.
- Prepísané šablóny. Mnohé témy majú vlastné kópie šablón WooCommerce (priečinok
woocommerce/v téme). Keď WooCommerce zmení originál, kópia sa stane zastaranou. V časti WooCommerce > Stav (Stav systému) je dole pri téme uvedené, ktoré šablóny prepisuje a ktoré sú zastarané. Zastaraným šablónam môžu chýbať nové polia alebo môžu spôsobovať chyby. Aktualizujte tému alebo požiadajte jej autora o aktualizáciu.
Malé aktualizácie (posledné číslo) nasaďte podľa možnosti rýchlo, najlepšie automaticky, pretože často opravujú bezpečnostné chyby. Veľké aktualizácie najprv otestujte na stagingu (lekcia 7.3), v pokojnom čase a so zálohou urobenou tesne predtým.
Zálohy: čo zmizne pri obnovení
Príklad. Theehuis Example robí každú noc o 03.00 hod. zálohu. V utorok o 10.00 hod. správca aktualizuje WooCommerce a potom stránka produktu zobrazuje chybu. Medzi 03.00 a 10.00 prišlo šesť objednávok, zaplatených cez poskytovateľa platieb. Ak teraz obnovíte zálohu z 03.00, potom:
- tých šesť objednávok z databázy zmizne, hoci peniaze sú u poskytovateľa;
- e-shop už nevie, že zásoby sú nižšie;
- e-shop môže neskôr ešte dostávať od poskytovateľa notifikácie (webhooky) o objednávkach, ktoré nepozná.
Preto:
- Zálohujte tesne pred aktualizáciou, nielen v noci. Medzera bude čo najmenšia.
- Pri obnovení si zapíšte, ktoré objednávky prišli po zálohe (z e-mailov „Nová objednávka“ a z prehľadu vášho poskytovateľa) a potom ich ručne doplňte, alebo ich vopred exportujte.
- Podľa možnosti obnovte len súbory (starý priečinok pluginu alebo témy), ak je problém v kóde, a databázu nechajte tak. Aktualizáciu často vrátite späť inštaláciou predchádzajúcej verzie pluginu; kurz WordPress, lekcia 8.2, ukazuje, ako obnovovať cielene. Ak aktualizácia už databázu upravila, stará verzia s ňou možno nebude fungovať: preto najprv testujte na stagingu.
- Zálohujte častejšie ako pri bežnej stránke: e-shop s objednávkami počas celého dňa potrebuje aspoň dennú, lepšie častejšiu zálohu databázy a kópiu mimo servera (pravidlo 3-2-1, kurz WordPress, lekcia 8.1).
Od verzie WooCommerce 8.2 sa objednávky v nových obchodoch ukladajú do vlastných tabuliek (HPOS, lekcia 1.2), napríklad wp_wc_orders. Zálohovací plugin, ktorý berie len „príspevky“ alebo vyberá tabuľky podľa názvu, musí zahrnúť aj tieto tabuľky. Pri skúšobnom obnovení (kurz WordPress, lekcia 8.2) overte, či v ňom objednávky naozaj sú.
Vo WebOké vytvára WebOké Backups každú noc zálohu, ktorá sa uchováva 30 dní v inom dátovom centre (DA 16.1); okrem toho si môžete pred aktualizáciou sami vytvoriť zálohu v DirectAdmin alebo Installatron. U iných poskytovateľov hostingu to funguje podobne; overte si, ako často a ako dlho sa zálohy uchovávajú.
Roly: kto smie čo
WooCommerce pridáva do WordPressu dve roly (kurz WordPress, lekcia 3.3):
- Zákazník (Customer): zákazník s účtom. Vidí len vlastné objednávky a údaje. Tejto role nikdy nedávajte administrátorské oprávnenia.
- Správca obchodu (Shop manager): môže spravovať produkty, objednávky, zákazníkov, kupóny a nastavenia WooCommerce, ale nemôže inštalovať pluginy ani meniť tému.
Pre zamestnancov, ktorí balia objednávky, odpovedajú na otázky zákazníkov alebo zadávajú produkty, stačí rola Správca obchodu. Rola Administrátor je len pre toho, kto sa stará o techniku. Každý zamestnanec má mať vlastný účet s dvojstupňovým overením (kurz WordPress, lekcia 7.3); žiadny spoločný účet „obchod“. Správca obchodu vidí všetky údaje zákazníkov, preto účty odstráňte, keď niekto odchádza.
Kľúče API (lekcia 2.4) sú tiež formou oprávnení: prepojeniu dajte len právo na čítanie, ak nemusí nič zapisovať, a kľúče, ktoré sa už nepoužívajú, odstráňte.
Čo váš e-shop ukazuje každému
Útočníci hľadajú e-shopy so starou verziou WooCommerce alebo s platobným pluginom so známou zraniteľnosťou. WooCommerce štandardne vkladá do zdrojového kódu riadok <meta name="generator" content="WooCommerce 11.2.2"> a verzia je aj za štýlmi (?ver=). Skrytie je malý zisk; aktualizácia veľký. E-shop, ktorý je poriadne aktualizovaný, sa nemusí o viditeľné číslo verzie veľmi obávať. E-shop, ktorý zaostáva, sa tým prezradí.
Súbor xmlrpc.php je staré rozhranie, cez ktoré sa aplikácie prihlasujú do WordPressu. Často sa zneužíva na hádanie hesiel. Ak nepoužívate aplikáciu ani službu, ktorá ho potrebuje, zablokujte ho (vo WebOké je štandardne zablokovaný, KB 169). Otvorený xmlrpc.php odpovedá na bežnú požiadavku v prehliadači textom „XML-RPC server accepts POST requests only.“ a stavom 405. Zablokovaný vráti 403 alebo 404.
Zhrnutie
- Databáza e-shopu sa mení celý deň: obnovenie zálohy vás stojí objednávky, ktoré už boli zaplatené.
- Malé aktualizácie rýchlo, veľké najprv na stagingu; sledujte aktualizáciu databázy, rozšírenia a zastarané šablóny v časti WooCommerce > Stav.
- Zálohujte tesne pred aktualizáciou a častejšie ako pri bežnej stránke; overte, že sa zálohujú aj tabuľky objednávok.
- Zamestnanci dostanú rolu Správca obchodu, nie Administrátor; každý vlastný účet s dvojstupňovým overením.
- Skrývanie verzií pomáha málo, aktualizácia veľa; xmlrpc.php zablokujte, ak ho nepoužívate.
Kvíz
Úloha
Úloha A6.2: Zobrazuje váš e-shop verzie? Zadajte adresu svojho e-shopu, verziu WordPressu (Nástenka > Aktualizácie) a verziu WooCommerce (Pluginy). Program načíta domovskú stránku a feed a súbor /wp-content/plugins/woocommerce/readme.txt (len prvé 2 kB, riadok „Stable tag“). Hľadá čísla verzií WordPressu a WooCommerce v riadkoch generator a za ?ver= pri štýloch WooCommerce a na wordpress.org zistí najnovšie verzie. Zelená, ak sú vaše verzie najnovšie a to, čo je viditeľné, s nimi súhlasí. Oranžová, ak čaká len malá aktualizácia, alebo ak je verzia viditeľná, ale aktuálna. Červená, ak zaostávate o veľkú verziu, ak sa viditeľná verzia líši od toho, čo ste zadali (beží niečo iné, než si myslíte), alebo pri neplatnom zadaní.
Úloha A6.2b: Je xmlrpc zablokované? Zadajte adresu svojho e-shopu a zaškrtnite, ak používate aplikáciu alebo službu, ktorá potrebuje xmlrpc.php. Program načíta /xmlrpc.php bežnou požiadavkou GET, bez odosielania čohokoľvek. Zelená pri 401, 403, 404, 410, presmerovaní alebo bežnej stránke HTML. Červená pri 405 s textom „XML-RPC server accepts POST requests only.“ bez zaškrtnutia; oranžová, ak ste uviedli, že ho potrebujete. Kontroluje aj, či je zoznam používateľských mien cez /wp-json/wp/v2/users verejný (oranžová, ak sú mená viditeľné).
Zelená značka znamená, že táto kontrola je teraz v poriadku, nie že je váš e-shop bezpečný.
Ďalšie čítanie
Postupy v paneli platia pre WebOké; u iných poskytovateľov to funguje podobne.
- Bezplatný kurz WordPress 7.2: Udržiavanie aktualizácií
- Bezplatný kurz WordPress 8.1: Zálohy: čo, kde a ako často
- Bezplatný kurz WordPress 8.2: Obnovenie a testovanie
- Bezplatný kurz WordPress 3.3: Používatelia a roly
- Návod na DirectAdmin 16.1: Aké zálohy existujú vo WebOké
- WebOké Backups: zobrazenie, obnovenie alebo stiahnutie zálohy
- WordPress: prístup k xmlrpc.php nefunguje
- High Performance Order Storage (developer.woocommerce.com, v angličtine): https://developer.woocommerce.com/docs/features/orders/high-performance-order-storage/
