Cronologia delle modifiche — PrestaWard Facet Shield
Questo changelog riassume, versione per versione, l’impatto sui negozi e sui team di e-commerce.
0.1.16
- Novità: limiti per categoria e per livello del catalogo. Una categoria, o tutte quelle di un livello, può avere i propri limiti (dimensione della query, faccette, valori totali e valori in una faccetta); un limite lasciato vuoto utilizza il livello successivo e i limiti globali rimangono la base. Una politica firmata da Integrity limita anche quelli di categoria.
- Novità: limiti suggeriti per categoria. Il pannello elenca le categorie che necessitano di un limite diverso, indicando a quante richieste verrebbe applicato il blocco attualmente e il suggerimento, e permette di applicare un limite a una categoria con un clic. Si riutilizza la regola rigorosa del suggerimento globale: una categoria che sembra provenire da una scansione automatizzata non viene mai allentata.
- Novità: Protezione pilota per categoria. Con il negozio in modalità Osservazione, puoi bloccare le categorie che scegli, mentre le altre restano in osservazione. Richiede una politica Integrity firmata e valida (senza di essa, Facet Shield rimane in osservazione, come prima) e una conferma esplicita per ogni categoria; per interrompere la modalità pilota basta un clic.
- Novità: limite di richieste per indirizzo, opzionale. Conta le richieste filtrate al minuto per indirizzo (30 al minuto di default, da 5 a 600); se supera il limite, in “Protezione” l’indirizzo viene bloccato temporaneamente (un’ora di default, fino a 24) con codice di stato HTTP 429 e Retry-After, mentre in “Osservazione” viene solo conteggiato. Non viene salvato nessun indirizzo IP: solo un hash con chiave che viene eliminato poco dopo la fine del blocco, quindi non c’è nessuna lista nera permanente. L’indirizzo è quello risolto da PrestaShop (tramite i proxy fidati); gli indirizzi e gli intervalli della tua lista dei permessi non vengono mai conteggiati e un problema di database non blocca mai un cliente.
- Novità: motori di ricerca verificati. Nella sezione Protezione, un Googlebot o Bingbot il cui DNS inverso e diretto coincidono con i server ufficiali riceve una risposta "economica" con noindex e l’URL canonico della categoria invece di un 403, così l’URL del filtro viene rimosso dall’indice e non viene eseguito l’SQL delle faccette. Si interroga solo chi dichiara di essere uno di quei motori di ricerca; il verdetto viene memorizzato nella cache (24 ore se valido, un’ora in caso contrario) e le richieste sono limitate al minuto per l’intero negozio.
- Segnali di falsi positivi: le richieste che superano i limiti vengono conteggiate anche se provengono da un cliente con sessione attiva, da un motore di ricerca verificato o da una raffica rapida di dieci o più al minuto, e le statistiche mostrano queste tre cifre con la loro percentuale. Le raffiche vengono misurate mentre il limite per indirizzo è attivo.
- Novità: avvisi via e-mail, opzionali, con le impostazioni di posta del negozio: crescita rapida della cache (al massimo una volta al giorno), picchi di richieste bloccate (al massimo ogni sei ore) e un riepilogo settimanale a parte, per un massimo di cinque destinatari a tua scelta e con un pulsante per inviare un’e-mail di prova. Nessun PDF né link nel testo. Vengono inviate durante la manutenzione in background, mai mentre si serve una pagina a un cliente.
- Novità: svuotamento automatico della cache, opzionale. Quando la cache della ricerca per faccette supera la dimensione che scegli, Facet Shield chiede a ps_facetedsearch di svuotare la propria cache con il metodo offerto da quel modulo, al massimo una volta al giorno, e lo annota nel registro di assistenza. Se la versione installata non dispone di tale metodo, non viene modificato nulla. Facet Shield continua a non cancellare mai le tabelle di un altro modulo.
- Avviso sulle versioni vulnerabili di ps_facetedsearch, basato su una piccola tabella inclusa nel modulo (non si scarica nulla): le versioni dalla 3.0.0 alla 4.0.3 sono interessate dalla vulnerabilità CVE-2026-54159, risolta nella 4.0.4, e il pannello consiglia di aggiornare.
- Il pannello è organizzato in schede (Riepilogo, Limiti e categorie, Traffico e bot, Statistiche, Cache e manutenzione e Impostazioni). La scheda Riepilogo mostra solo la modalità, le ultime 24 ore, un’azione principale e, al massimo, una riga di avviso; viene calcolata solo la scheda aperta. Il pannello di assistenza di GO ON Agency ha una scheda dedicata, Assistenza, sempre l’ultima, mentre lo stato di Integrity si trova alla fine di tutte le schede. L’intestazione ora mostra il logo di GO ON Agency.
- La scheda «Limiti e categorie» è organizzata in schede: limiti globali, impatto dei suggerimenti con pulsanti di dimensioni normali e tabella delle regole per categoria con un modulo per aggiungerne un’altra. La scheda «Cache» utilizza blocchi a scomparsa e un’unica riga di statistiche.
- Le e-mail di avviso mostrano il logo del tuo negozio nell’intestazione (con il nome del negozio come testo alternativo) e un piè di pagina standard con il logo di GO ON Agency e la firma «PrestaWard by GO ON Agency», senza link né indirizzi di contatto. Il logo nel piè di pagina è un file del modulo stesso fornito dal tuo negozio.
- Aspetto unificato del pannello nei quattro moduli PrestaWard: intestazioni di sezione, schede dei moduli con bordi neutri e blocchi a scomparsa comuni, statistiche su un’unica riga e un logo GO ON Agency più grande nell’intestazione. Il pulsante principale assume ora un colore a tinta unita del marchio, senza sfumature.
- Corregge il fatto che, in PrestaShop 9, il tema di amministrazione mostrasse le schede sottolineate come link e i titoli delle sezioni in maiuscolo. Gli stili comuni lo neutralizzano solo all’interno del pannello di PrestaWard, quindi PrestaShop 1.7 e 8 hanno lo stesso aspetto di prima.
- Risolve il problema per cui, in PrestaShop 1.7, il foglio di stile del modulo veniva ignorato quando veniva registrato con il numero di versione nell’URL. Ora il file viene verificato e registrato senza parametri, così il nuovo aspetto appare nelle versioni 1.7, 8 e 9.
- Correzione: in PrestaShop 9, i moduli di azione del pannello e la sincronizzazione con Integrity verificavano il token di sicurezza con un metodo che PrestaShop 9 non utilizza, con il rischio che venissero rifiutati. Ora la convalida avviene tramite il servizio di PrestaShop 9; in PrestaShop 1.7 e 8 la verifica rimane invariata.
- Quando non è possibile aggiornare la connessione con Integrity in quel momento, il pannello mostra un unico messaggio: la connessione salvata è ancora valida e verrà riprovata automaticamente. Le etichette di tutte le schede sono tradotte nelle nove lingue.
- Correzione del problema per cui la connessione con Integrity si deteriorava nel contesto «tutti i negozi»: l'identità dell'installazione viene ora letta come un'unità dall'ambito globale (o dal negozio in cui è salvata) in qualsiasi contesto; l'aggiornamento trasferisce all'ambito globale un'identità salvata in un negozio senza rigenerarla e, se non è possibile leggerla, lo stato di Integrity rimane invariato.
- Risolve il problema per cui la tabella della scheda Cache si spostava di qualche pixel lateralmente sulla versione desktop: il contenitore ora occupa lo spazio tra i suoi margini.
- Tutti i nuovi testi sono disponibili nelle nove lingue del modulo. L'aggiornamento aggiunge una piccola tabella e tre contatori alle statistiche delle richieste e non attiva nulla di per sé; il contratto con l'Integrity API rimane invariato e una politica firmata valida può comunque solo inasprire i limiti.
0.1.15
- Le statistiche delle richieste non crescono più all’infinito: ogni ora, i record al minuto che superano un’ora vengono raggruppati in un unico record orario senza modificare i totali né i grafici, e quelli precedenti al nuovo periodo «Conservazione delle statistiche (giorni)» (90 di default, tra 30 e 365) vengono eliminati in piccoli lotti in background, mai mentre si sta servendo una pagina a un cliente.
- La diagnostica dei bot non smette più di raccogliere campioni una volta raggiunti i 500: conserva quelli più recenti ed elimina quelli più vecchi. Questa funzione è controllata dall’impostazione «Campioni diagnostici da conservare» (500 di default, compreso tra 50 e 5000).
- Nuovo pannello «Limiti suggeriti»: in base al traffico registrato in modalità Osservazione, propone un valore per ogni limite (dimensione della query, faccette, valori totali e valori in una faccetta), mostra quante richieste vengono bloccate dai limiti attuali e quante ne bloccherebbe il suggerimento, e spiega la causa principale, ad esempio quale filtro di quale categoria provoca il superamento maggiore. Un pulsante applica i quattro limiti suggeriti al negozio selezionato senza cambiare la modalità.
- I suggerimenti non sono mai più rigidi del limite predefinito, non allentano mai un limite e rispettano la politica firmata di Integrity quando questa è più rigida. Se poche categorie concentrano le richieste che superano un limite, il suggerimento viene calcolato sul resto; il pannello indica quale parte dell’eccesso proviene da quante categorie e quel limite non viene modificato al momento dell’applicazione.
- Il pannello della cache della ricerca per facette distingue le tabelle della cache da quelle degli indici, mostra come è cambiata la loro dimensione negli ultimi giorni con un avviso se cresce rapidamente, indica i negozi in cui ps_facetedsearch manca o è disattivato e rimanda alla sua configurazione nativa. Facet Shield legge solo quelle tabelle: non le modifica né le cancella mai.
- Il pannello è molto più veloce nei negozi con un traffico elevato: con oltre mezzo milione di record, il tempo di caricamento passa da circa 20 secondi a pochi secondi, e a una frazione di secondo se lo riapri entro meno di dieci minuti. I dati visualizzati non cambiano.
- Tutti i nuovi testi sono disponibili nelle nove lingue del modulo.
- Il pannello di assistenza e diagnostica si trova proprio prima della sezione Integrity, come negli altri moduli PrestaWard, e nel contesto «tutti i negozi» non scompare più: indica che bisogna selezionare un negozio.
- Sincronizza con Integrity ogni volta che apri il pannello, con una richiesta in background che non rallenta mai la pagina e al massimo una volta al minuto per ogni negozio.
0.1.14
- Smette di riprovare la registrazione su Integrity quando cambia la chiave di registrazione del negozio e mostra un avviso chiaro.
- Rinnova la politica firmata di Integrity prima che scada e mantieni la politica attuale e i suoi limiti se il rinnovo non va a buon fine.
- Una politica Integrity firmata può solo inasprire i limiti configurati nel negozio, mai allentarli: per la dimensione, il numero di faccette, di valori e di valori per faccetta si applica il valore più basso tra il tuo limite e quello della politica, mentre la modalità (Osservazione o Protezione) la decidi tu.
- Corregge la chiave di politica inclusa affinché funzioni con PHP 7.1 e 7.2.
- Aggiunge il pannello di assistenza di GO ON Agency in nove lingue, con un rapporto diagnostico scaricabile che non include dati dei clienti né viene inviato automaticamente. Viene scaricato solo da un dipendente con autorizzazione di modifica e con un negozio selezionato.
- Dichiara la compatibilità a partire da PrestaShop 1.7.7.0, la versione più vecchia testata.
0.1.13
- Corregge la prova di registrazione e le attività del Back Office in PrestaShop 9.
- Accetta entrambi i formati validi di URL di test di proprietà con convalida rigorosa.
- Migliora la diagnostica e i tentativi di registrazione in Integrity.
0.1.12
- La disinstallazione elimina anche la tabella delle esclusioni per categoria e tutte le chiavi di configurazione di Integrity (fase di installazione, prova di registrazione, credenziale sigillata e chiavi), senza lasciare traccia.
- Sono stati aggiunti gli
index.php di protezione che mancavano e il controllo degli accessi diretti tramite _PS_VERSION_ nel controller del Back Office e negli ultimi tre script di aggiornamento, proprio come negli altri punti di accesso del modulo. - Adotta il sistema di design condiviso di PrestaWard: il pannello del Back Office utilizza l’intestazione scura comune, l’indicatore di stato unificato (Disattivato/In osservazione/In protezione) e il pannello «Monitoraggio GO ON», gestiti da un unico foglio di stile condiviso e ospitato localmente.
0.1.11 — aggiornamento di sicurezza
- Le esclusioni per categoria evitano solo la normale analisi di complessità: le firme complete di serializzazione PHP continuano a essere analizzate, registrate e bloccate sempre in modalità Protezione.
- Si precisa che per risolvere la vulnerabilità CVE-2026-54159 è necessario un
ps_facetedsearch 4.0.4 o successiva; Facet Shield rimane una controllo di difesa in profondità, non un sostituto della correzione ufficiale.
0.1.10
- Simulatore locale di URL o
q, andamento giornaliero basato su dati aggregati esistenti ed esportazioni CSV limitate. - Esclusioni verificabili per categoria, con motivazione obbligatoria e cancellazione logica; non vengono esclusi né gli indirizzi IP né gli user-agent.
- La prima attivazione della Protezione richiede prove proprie di Osservazione e calcola una stima prudente dell’impatto con la politica candidata; in assenza di richieste osservate, non permette di attivare il blocco.
- Tutte le directory di produzione del pacchetto includono un file
index.php che termina l’esecuzione, compreso views/js. - La guida spiega come registrare di nuovo Integrity per ogni negozio dopo aver ruotato
_COOKIE_KEY_, senza recuperare né condividere la chiave precedente. - Protezione aggiuntiva contro le intestazioni di serializzazione PHP complete nelle query delle faccette, senza bloccare i valori normali che contengono testo come
O:. - Avviso configurabile per negozio quando la stima della cache della ricerca per faccette supera la soglia definita; il modulo non cancella né aggiorna nulla automaticamente.
- I tentativi di ricarica e gli heartbeat di Integrity non vengono più eseguiti all’interno del rendering sincrono di nessuna schermata del Back Office: vengono programmati tramite una richiesta asincrona autenticata e limitata.
- Viene rimossa la visualizzazione del riepilogo degli eventi legacy senza cancellare i dati storici e viene mantenuto il pannello degli aggiornamenti esistente come unico avviso delle nuove versioni.
0.1.9
- La registrazione ora utilizza il dispatcher nativo dei moduli di PrestaShop e non dipende più da URL friendly, regole di
.htaccess o cache dei percorsi. - L'aggiornamento dalle versioni precedenti corregge in modo idempotente gli hook necessari senza cancellare né le politiche né le statistiche.
- All’apertura della dashboard viene verificata automaticamente la presenza di una nuova versione, con una cache di sei ore e senza bloccare il Back Office se il manifesto non risponde.
- Flusso verificato su PrestaShop 1.7, 8 e 9.
0.1.8
- La protezione si limita ai controller effettivi delle categorie e della ricerca, evitando di bloccare i parametri
q estranei alle faccette. - Le richieste
HEAD bloccate restituiscono solo le intestazioni, senza corpo. - La diagnosi identifica l’agente come dichiarato e spiega correttamente il campione abbreviato di user-agent che viene conservato in modo facoltativo.
- Integrity si presenta con uno stato minimo di connessione e sincronizzazione, senza dettagli interni che possano confondere l’utente.
- Compatibilità funzionale verificata su PrestaShop 1.7, 8 e 9.
0.1.7
- Heartbeat automatico senza cron: il traffico del negozio attiva una sonda locale limitata e il server rinnova la presenza su Integrity API senza esporre le credenziali al browser.
- Blocco atomico per negozio, intervallo di sei ore e attesa di quindici minuti dopo eventuali errori per evitare invii duplicati.
- Anche la sincronizzazione manuale di Integrity aggiorna l’heartbeat.
- Compatibilità verificata su PrestaShop 1.7, 8 e 9.
0.1.6
- Heartbeat autenticato, tentativi automatici e diagnostica dettagliata della connessione con l’Integrity API.
- Diagnostica opzionale anche in modalità Osservazione, con identificazione dell’agente, filtri per bot e motivo, impaginazione e campione limitato della combinazione di faccette.
- Conservazione gestita dall’amministratore: numero di campioni, spazio stimato e cancellazione manuale dal Back Office.
- Indicatori visivi e di sola lettura relativi a dimensioni, record stimati e tabelle della cache delle faccette.
- Interfaccia riorganizzata: modalità e attivazione della Protezione sotto «Cosa fa», sezioni delimitate e Integrity API spostata alla fine.
- Niente IP, cookie o URL completi; testi disponibili in nove lingue.
- Installazione, blocco, diagnostica, cache, disinstallazione e reinstallazione verificati su PrestaShop 1.7, 8 e 9.
0.1.5
- Registrazione automatica e non bloccante nell’Integrity API tramite prova di controllo del negozio.
- L'installazione non richiede account, chiavi API né passaggi di registrazione manuale.
- Politiche firmate e verificate con ancore di fiducia incluse nella versione.
0.1.4
- Istogrammi di complessità e conteggio atomico per tutte le richieste analizzate.
- Limiti dei valori per faccetta, richieste non valide e contesto della richiesta limitato.
- Stato di osservazione, inizio del periodo statistico e ripristino protetto per negozio.
- Motivi e statistiche tradotti.
0.1.3
- Indicatori relativi alle richieste analizzate, entro i limiti, agli sforamenti e ai blocchi effettivi.
- Aggiunte per negozio e minuto senza IP, URL, user-agent né valori selezionati.
- Selettore di modalità accessibile e shell visiva PrestaWard per desktop e dispositivi mobili.
0.1.2
- Identità dell’installazione e negozio predisposto per l’Integrity API.
- Politica firmata con l'ultimo stato valido per negozio e ritorno sicuro alla modalità Osservazione.
- Stato della connessione e riprova manuale dal Back Office, senza chiamate dal Front Office.