Vai al contenuto

Impostazioni cookie

Scelga per ogni tipo quali cookie consente. Può modificare la sua scelta in qualsiasi momento tramite Impostazioni cookie in fondo a ogni pagina. Informativa sulla privacy

Necessari

Sempre attivi

Servono per accedere, conservare il carrello e ricordare le sue scelte. Sono sempre attivi.

Quali cookie?
  • weboke_sessie, weboke_klant, weboke_remember: la sua sessione e la permanenza dell'accesso
  • weboke_basket: il suo carrello
  • wkBtwIncl: visualizzazione dei prezzi con o senza IVA
  • wok_cookies: la sua scelta sui cookie, 12 mesi

Misurano quale annuncio porta a una visita o a un ordine, così non paghiamo annunci che non funzionano.

Quali cookie?
  • Google Ads tramite Google Tag Manager (_gcl_au, _gcl_aw), fino a 90 giorni
  • OpenAI Ads, annunci in ChatGPT
  • wok_aff: tramite quale partner è arrivato da noi (programma di affiliazione), 60 giorni

4,6

Paese e lingua

Ogni paese ha il suo sito, con i prezzi e l'IVA di quel paese.

Vedi

Aggiornamenti, backup e ruoli

Modulo 6: Gestione e sicurezza · Tempo di lettura: 11 minuti

Obiettivo della lezione: Dopo questa lezione sarà in grado di aggiornare un negozio WooCommerce e di farne il backup senza perdere ordini, e di distribuire i permessi in modo che ognuno possa fare solo ciò che gli serve.

Concetti chiave: aggiornamento maggiore e minore, aggiornamento del database, estensioni e compatibilità, sovrascritture dei template (template overrides), template obsoleti, backup prima dell’aggiornamento, ordini tra backup e ripristino, tabelle HPOS, ruoli Gestore negozio (Shop manager) e Cliente (Customer), privilegi minimi, versioni visibili, xmlrpc.php

Perché un negozio è diverso da un sito normale

Nel corso su WordPress (lezioni 7.2, 8.1 e 8.2) viene spiegato come aggiornare WordPress, come fare i backup e come ripristinarli. Per un negozio vale tutto questo, con una grande differenza: il database cambia continuamente, per tutto il giorno. Ogni ordine, ogni cliente, ogni variazione delle scorte e ogni pagamento vi finisce dentro. Su un sito informativo, con un backup di ieri perde al massimo un articolo. Su un negozio perde ordini già pagati.

Per questo due regole pratiche per questa lezione:

  1. In un negozio il ripristino è l’ultimo passo, non il primo.
  2. Aggiorni con un piano, non "al volo il venerdì pomeriggio".

Aggiornamenti di WooCommerce

WooCommerce pubblica regolarmente nuove versioni, con piccole correzioni nel mezzo. Il numero di versione ha tre parti, per esempio 11.2.2. Una modifica nell’ultimo numero indica una piccola correzione o un aggiornamento di sicurezza; una modifica nel primo o nel secondo numero porta nuove funzioni e talvolta cambiamenti a cui le estensioni o il Suo tema devono adattarsi.

Durante un aggiornamento di WooCommerce succedono tre cose che con un plugin normale si vedono meno:

  • Un aggiornamento del database. A volte WooCommerce deve modificare le tabelle. In tal caso vede un avviso nella bacheca che il database è in fase di aggiornamento; il processo avviene in background tramite le azioni pianificate (lezione 7.3). Non lo interrompa e controlli in WooCommerce > Stato se è terminato.
  • Le estensioni devono stare al passo. I plugin di pagamento, i collegamenti con i corrieri e quelli con la contabilità indicano fino a quale versione di WooCommerce sono stati testati. Nella schermata dei plugin compare un avviso se un’estensione non menziona una versione più recente. Legga le modifiche del Suo plugin di pagamento prima di aggiornare: un plugin di pagamento che smette di funzionare significa un negozio che non vende.
  • Sovrascritture dei template. Molti temi hanno copie proprie dei template di WooCommerce (la cartella woocommerce/ nel tema). Se WooCommerce modifica l’originale, la copia diventa obsoleta. In WooCommerce > Stato (Stato del sistema), in fondo, alla voce del tema, è indicato quali template il tema sovrascrive e quali sono obsoleti. I template obsoleti possono non avere i nuovi campi o generare errori. Aggiorni il tema, oppure chieda un aggiornamento allo sviluppatore.

Gli aggiornamenti minori (ultimo numero) è preferibile installarli subito, meglio ancora in automatico, perché spesso correggono falle di sicurezza. Gli aggiornamenti maggiori li provi prima in staging (lezione 7.3), in un momento tranquillo, con un backup fatto subito prima.

Backup: che cosa sparisce con un ripristino

Un esempio. Theehuis Example fa ogni notte un backup alle 03.00. Martedì alle 10.00 l’amministratore aggiorna WooCommerce e da quel momento la pagina prodotto mostra un errore. Tra le 03.00 e le 10.00 sono arrivati sei ordini, pagati tramite il fornitore di pagamento. Se ora ripristina il backup delle 03.00:

  • quei sei ordini spariscono dal database, mentre il denaro risulta comunque presso il fornitore;
  • il negozio non sa più che le scorte sono diminuite;
  • il negozio potrebbe ricevere in seguito notifiche (webhook) dal fornitore su ordini che non conosce.

Per questo:

  • Faccia un backup subito prima di un aggiornamento, non solo di notte. Così il vuoto è il più piccolo possibile.
  • In caso di ripristino, annoti quali ordini sono arrivati dopo il backup (dalle email "Nuovo ordine" e dalla dashboard del Suo fornitore) e poi li reinserisca a mano, oppure li esporti prima.
  • Se possibile ripristini solo i file (la vecchia cartella del plugin o del tema) quando il problema è nel codice, e lasci intatto il database. Spesso è possibile annullare un aggiornamento installando la versione precedente del plugin; il corso su WordPress, lezione 8.2, mostra come fare un ripristino mirato. Se l’aggiornamento ha già modificato il database, la vecchia versione potrebbe non funzionare più con esso: per questo va prima testato in staging.
  • Faccia backup più spesso che per un sito normale: un negozio con ordini tutto il giorno richiede almeno un backup giornaliero del database, meglio se più frequente, e una copia fuori dal server (regola 3-2-1, corso su WordPress, lezione 8.1).

Da WooCommerce 8.2, nei nuovi negozi gli ordini si trovano in tabelle proprie (HPOS, lezione 1.2), come wp_wc_orders. Un plugin di backup che salva solo gli "articoli" o seleziona le tabelle per nome deve includere anche queste tabelle. Durante una prova di ripristino (corso su WordPress, lezione 8.2) verifichi che gli ordini ci siano davvero.

Presso WebOké, WebOké Backups esegue ogni notte un backup che viene conservato per 30 giorni in un altro datacenter (DA 16.1); inoltre può creare Lei stesso un backup prima di un aggiornamento in DirectAdmin o Installatron. Con altri provider funziona in modo simile; si informi su frequenza e durata di conservazione.

Ruoli: chi può fare che cosa

WooCommerce aggiunge due ruoli a WordPress (corso su WordPress, lezione 3.3):

  • Cliente (Customer): un cliente con un account. Può vedere solo i propri ordini e i propri dati. Non assegni mai a questo ruolo permessi di gestione.
  • Gestore negozio (Shop manager): può gestire prodotti, ordini, clienti, coupon e le impostazioni di WooCommerce, ma non può installare plugin né cambiare il tema.

Per i collaboratori che preparano gli ordini, rispondono alle domande dei clienti o inseriscono prodotti, Gestore negozio è sufficiente. Amministratore è riservato a chi si occupa della parte tecnica. Ogni collaboratore deve avere un proprio account, con verifica in due passaggi (corso su WordPress, lezione 7.3); nessun account condiviso "negozio". Un gestore del negozio vede tutti i dati dei clienti, quindi elimini gli account quando qualcuno se ne va.

Anche le chiavi API (lezione 2.4) sono una forma di permesso: conceda a un collegamento solo la lettura se non deve scrivere nulla, ed elimini le chiavi che non vengono più usate.

Che cosa mostra a tutti il Suo negozio

Gli aggressori cercano negozi con una vecchia versione di WooCommerce o un plugin di pagamento con una vulnerabilità nota. WooCommerce inserisce per impostazione predefinita una riga <meta name="generator" content="WooCommerce 11.2.2"> nel codice sorgente, e la versione compare anche dopo i fogli di stile (?ver=). Nascondere è un piccolo guadagno; aggiornare uno grande. Un negozio sempre aggiornato non deve preoccuparsi molto di un numero di versione visibile. Un negozio rimasto indietro, invece, si tradisce.

Il file xmlrpc.php è un vecchio collegamento con cui le app accedono a WordPress. Viene molto sfruttato per indovinare le password. Se non usa un’app o un servizio che ne ha bisogno, lo chiuda (presso WebOké è chiuso per impostazione predefinita, KB 169). Un xmlrpc.php aperto risponde a una normale richiesta dal browser con "XML-RPC server accepts POST requests only." e lo stato 405. Se è chiuso restituisce 403 o 404.

Riepilogo

  • Il database di un negozio cambia tutto il giorno: un ripristino costa ordini già pagati.
  • Aggiornamenti minori subito, aggiornamenti maggiori prima in staging; faccia attenzione all’aggiornamento del database, alle estensioni e ai template obsoleti in WooCommerce > Stato.
  • Backup subito prima di un aggiornamento e più spesso che per un sito normale; verifichi che le tabelle degli ordini siano incluse.
  • I collaboratori ricevono il ruolo Gestore negozio, non Amministratore; ognuno con un proprio account con verifica in due passaggi.
  • Nascondere le versioni serve a poco, aggiornare serve molto; chiuda xmlrpc.php se non lo usa.

Quiz

1. Dopo un aggiornamento, alle 10.00 il Suo negozio mostra un errore. L’ultimo backup è delle 03.00. Qual è il rischio maggiore se ripristina l’intero backup?



2. Dove vede se il Suo tema usa template di WooCommerce obsoleti?



3. Un collaboratore prepara gli ordini e risponde alle domande dei clienti. Quale ruolo è adatto?



4. Che cosa indica uno stato 405 con il testo "XML-RPC server accepts POST requests only." quando apre /xmlrpc.php nel browser?



Esercizio

Esercizio A6.2: Il Suo negozio online mostra le versioni? Inserisca l’indirizzo del Suo negozio, la Sua versione di WordPress (Bacheca > Aggiornamenti) e la Sua versione di WooCommerce (Plugin). Il programma richiede la homepage e il feed, e il file /wp-content/plugins/woocommerce/readme.txt (solo i primi 2 kB, la riga "Stable tag"). Cerca i numeri di versione di WordPress e WooCommerce nelle righe generator e dopo ?ver= nei fogli di stile di WooCommerce, e richiede a wordpress.org le versioni più recenti. Verde se le Sue versioni sono le più recenti e ciò che è visibile corrisponde. Arancione se è in sospeso solo un aggiornamento minore, oppure se la versione è visibile ma aggiornata. Rosso se è indietro di una versione maggiore, se la versione visibile è diversa da quella inserita (è in esecuzione qualcosa di diverso da ciò che pensa), o in caso di dati non validi.

Esercizio A6.2: Il Suo negozio online mostra le versioni?




Quello che inserisce e quello che rileviamo non vengono salvati. Il Suo browser ricorda le Sue risposte e se ha superato l'esercizio. Se ha effettuato l'accesso, conserviamo in I miei corsi solo il fatto che l'esercizio era (quasi) corretto; anche lì può eliminarlo.

Esercizio A6.2b: xmlrpc è chiuso? Inserisca l’indirizzo del Suo negozio e spunti la casella se usa un’app o un servizio che ha bisogno di xmlrpc.php. Il programma richiede /xmlrpc.php con una normale GET, senza inviare nulla. Verde con 401, 403, 404, 410, un reindirizzamento o una normale pagina HTML. Rosso con 405 e il testo "XML-RPC server accepts POST requests only." senza spunta; arancione se ha indicato di averne bisogno. Controlla anche se l’elenco dei nomi utente tramite /wp-json/wp/v2/users è pubblico (arancione se sono visibili dei nomi).

Una spunta verde significa che questo controllo ora è superato, non che il Suo negozio è sicuro.

Esercizio A6.2b: xmlrpc è chiuso?



Quello che inserisce e quello che rileviamo non vengono salvati. Il Suo browser ricorda le Sue risposte e se ha superato l'esercizio. Se ha effettuato l'accesso, conserviamo in I miei corsi solo il fatto che l'esercizio era (quasi) corretto; anche lì può eliminarlo.

Per saperne di più

I passaggi in un pannello valgono per WebOké; con altri provider funziona in modo simile.

Un momento…

Configuri i suoi domini

Per ogni dominio imposti i nameserver, il collegamento al suo hosting e chi ne diventa l'intestatario.

Caricamento dei suoi domini…