Wijzigingslogboek — PrestaWard Facet Shield
Dit changelog geeft per versie een overzicht van de gevolgen voor winkels en e-commerceteams.
0.1.16
- Nieuw: limieten per categorie en per catalogusniveau. Een categorie, of alle categorieën op een bepaald niveau, kan eigen limieten hebben (querygrootte, facetten, totale waarden en waarden binnen een facet); een lege limiet gebruikt het volgende niveau en de algemene limieten blijven de basis. Een ondertekend Integrity-beleid beperkt ook de limieten per categorie.
- Nieuw: voorgestelde limieten per categorie. Het paneel geeft een overzicht van de categorieën die een andere limiet nodig hebben, met het aantal verzoeken waarbij de toegang momenteel zou worden geblokkeerd en de voorgestelde limiet, en past een limiet per categorie toe met één muisklik. Hierbij wordt de robuuste regel van de algemene aanbeveling toegepast: een categorie die op geautomatiseerde verkenning lijkt, wordt nooit versoepeld.
- Nieuw: Pilot-bescherming per categorie. Wanneer de winkel in de fase van Observatie staat, kunt u de door u gekozen categorieën blokkeren, terwijl de overige categorieën alleen observeren. Hiervoor is een geldig, ondertekend Integrity-beleid vereist (zonder dit beleid observeert Facet Shield alleen, net als voorheen) en een expliciete bevestiging per categorie; het stoppen van de pilot-modus is met één klik geregeld.
- Nieuw: limiet op het aantal verzoeken per adres, optioneel. Telt het aantal gefacetteerde verzoeken per minuut en per adres (standaard 30 per minuut, tussen 5 en 600); boven de limiet wordt het adres in de modus „Bescherming“ tijdelijk geblokkeerd (standaard één uur, maximaal 24 uur) met HTTP-statuscode 429 en Retry-After, en in de modus „Observatie“ wordt het alleen geteld. Er wordt geen enkel IP-adres opgeslagen: alleen een hash met een sleutel die kort na afloop van de blokkering wordt verwijderd, waardoor er geen permanente zwarte lijst bestaat. Het adres is het adres dat door PrestaShop wordt omgezet (met behulp van vertrouwde proxyservers); de adressen en reeksen op uw lijst met toegestane adressen worden nooit meegeteld en een databaseprobleem leidt nooit tot het blokkeren van een klant.
- Nieuw: geverifieerde zoekmachines. Onder ‘Bescherming’ ontvangt een Googlebot of Bingbot waarvan de reverse- en forward-DNS overeenkomen met de officiële servers een ‘goedkoop’ antwoord met ‘noindex’ en de canonieke URL van de categorie in plaats van een 403-fout, zodat de URL van het filter uit de index wordt verwijderd en er geen facetten-SQL wordt uitgevoerd. Er wordt alleen een verzoek ingediend bij degene die beweert een van deze zoekmachines te zijn; het oordeel wordt in de cache opgeslagen (24 uur indien geldig, één uur indien niet) en het aantal verzoeken is per minuut beperkt voor de gehele winkel.
- Indicaties van valse positieven: verzoeken die de limieten overschrijden, worden ook meegeteld wanneer ze afkomstig zijn van een klant met een actieve sessie, van een geverifieerde zoekmachine of van een snelle reeks van tien of meer per minuut, en de statistieken tonen deze drie cijfers met hun respectieve aandeel. De reeksen worden gemeten zolang de limiet per adres is geactiveerd.
- Nieuw: optionele e-mailmeldingen via de e-mailinstellingen van de winkel: snelle groei van de cache (maximaal één keer per dag), pieken in geblokkeerde verzoeken (maximaal om de zes uur) en een afzonderlijk wekelijks overzicht, voor maximaal vijf door u gekozen ontvangers en met een knop voor een testmail. Geen PDF’s of links in de tekst. Deze worden verzonden vanuit het onderhoud op de achtergrond, nooit tijdens het weergeven van een pagina aan een klant.
- Nieuw: automatische cache-opschoning, optioneel. Wanneer de cache van de facettenzoekfunctie de door u gekozen grootte overschrijdt, vraagt Facet Shield aan ps_facetedsearch om de eigen cache te legen met de methode die deze module biedt, maximaal één keer per dag, en noteert dit in het log van de ondersteuning. Indien de geïnstalleerde versie niet over die methode beschikt, blijft alles ongewijzigd. Facet Shield wist nog steeds nooit de tabellen van een andere module.
- Waarschuwing betreffende kwetsbare versies van ps_facetedsearch, op basis van een kleine tabel die in de module is opgenomen (er wordt niets gedownload): de versies 3.0.0 tot en met 4.0.3 zijn getroffen door CVE-2026-54159, verholpen in versie 4.0.4, en het dashboard raadt aan om te updaten.
- Het paneel is ingedeeld in tabbladen (Overzicht, Limieten en categorieën, Verkeer en bots, Statistieken, Cache en onderhoud en Instellingen). Het tabblad Overzicht toont alleen de modus, de afgelopen 24 uur, één hoofdactie en maximaal één waarschuwingsregel; alleen het geopende tabblad wordt berekend. Het ondersteuningspaneel van GO ON Agency heeft een eigen tabblad, Ondersteuning, dat altijd als laatste wordt weergegeven, en de status van Integrity staat onderaan alle tabbladen. In de koptekst wordt nu het logo van GO ON Agency weergegeven.
- Het tabblad „Limieten en categorieën“ is ingedeeld in kaarten: algemene limieten, impact van suggesties met knoppen van normale grootte en een tabel met regels per categorie met een formulier om een nieuwe regel toe te voegen. Het tabblad „Cache“ maakt gebruik van inklapbare blokken en één rij met statistieken.
- De waarschuwingsmails tonen het logo van uw winkel in de koptekst (met de naam van de winkel als alternatieve tekst) en een standaardvoettekst met het logo van GO ON Agency en de handtekening „PrestaWard by GO ON Agency”, zonder links of contactgegevens. Het logo in de voettekst is een bestand uit de module zelf dat vanuit uw winkel wordt aangeboden.
- Een uniform uiterlijk van het paneel in de vier PrestaWard-modules: sectiekopteksten, formulierkaarten met neutrale randen en gemeenschappelijke inklapbare blokken, statistieken op één regel en een groter logo van GO ON Agency in de koptekst. De hoofdknop krijgt een effen kleur die overeenkomt met het merk, zonder kleurverloop.
- Dit corrigeert het feit dat in PrestaShop 9 de beheerdersinterface de tabbladen onderstreept weergeeft als links en de sectietitels in hoofdletters. De algemene stijlen neutraliseren dit alleen binnen het PrestaWard-paneel, zodat PrestaShop 1.7 en 8 er hetzelfde uitzien als voorheen.
- Dit verhelpt het probleem dat in PrestaShop 1.7 het stylesheet van de module werd genegeerd wanneer het werd geregistreerd met het versienummer in de adresbalk. Het bestand wordt nu gecontroleerd en zonder parameters geregistreerd, zodat de nieuwe weergave zichtbaar is in versie 1.7, 8 en 9.
- Dit corrigeert het feit dat in PrestaShop 9 de actieformulieren van het paneel en de synchronisatie met Integrity het beveiligingstoken controleerden met een methode die PrestaShop 9 niet gebruikt, waardoor deze mogelijk werden afgewezen. De validatie vindt nu plaats via de PrestaShop 9-service; in PrestaShop 1.7 en 8 blijft de controle ongewijzigd.
- Wanneer de verbinding met Integrity op dat moment niet kan worden bijgewerkt, geeft het paneel één enkel bericht weer: de opgeslagen verbinding blijft geldig en er wordt automatisch een nieuwe poging ondernomen. De labels van alle tabbladen zijn vertaald in de negen talen.
- Dit verhelpt het probleem dat de verbinding met Integrity in de context „alle winkels“ verslechterde: de installatie-identiteit wordt nu in elke context als één geheel uit het globale domein (of uit de winkel waarin deze is opgeslagen) gelezen; de update draagt een in een winkel opgeslagen identiteit over naar het globale domein zonder deze opnieuw te genereren en, indien deze niet kan worden gelezen, blijft de status van Integrity ongewijzigd.
- Er is een correctie aangebracht voor het feit dat de tabel op het tabblad Cache op desktopcomputers enkele pixels naar de zijkanten verschoven was: de container vult nu de ruimte tussen de marges in.
- Alle nieuwe teksten zijn beschikbaar in de negen talen van de module. De update voegt een kleine tabel en drie tellers toe aan de verzoekstatistieken en activeert op zichzelf niets; de overeenkomst met de Integrity API blijft ongewijzigd en een geldig ondertekend beleid kan nog steeds alleen de limieten aanscherpen.
0.1.15
- De statistieken van verzoeken groeien niet langer onbeperkt: elk uur worden de registraties per minuut die langer dan een uur duren, samengevoegd tot één registratie per uur, zonder dat de totalen of grafieken worden gewijzigd, en de gegevens die dateren van vóór de nieuwe termijn „Bewaring van statistieken (dagen)“ (standaard 90, tussen 30 en 365) worden in kleine batches op de achtergrond verwijderd, nooit terwijl een pagina aan een klant wordt weergegeven.
- De botdiagnose stopt niet langer met het verzamelen van steekproeven zodra het aantal 500 bereikt: de meest recente steekproeven worden bewaard en de oudste worden verwijderd. Dit wordt geregeld door de instelling „Steekproeven die worden bewaard“ (standaard 500, tussen 50 en 5000).
- Nieuw paneel „Voorgestelde limieten”: op basis van het geregistreerde verkeer in de Observatie stelt het een waarde voor voor elke limiet (querygrootte, facetten, totale waarden en waarden binnen een facet), toont het hoeveel verzoeken door de huidige limieten worden geblokkeerd en hoeveel er door de suggestie zouden worden geblokkeerd, en legt de belangrijkste oorzaak uit, bijvoorbeeld welk filter uit welke categorie de meeste overschrijdingen veroorzaakt. Met een knop kunt u de vier voorgestelde limieten toepassen op de geselecteerde winkel zonder de modus te wijzigen.
- De aanbevelingen zijn nooit strenger dan de standaardlimiet, ze verruimen een limiet nooit en houden zich aan het ondertekende beleid van Integrity wanneer dit strenger is. Indien een klein aantal categorieën verantwoordelijk is voor de verzoeken die een limiet overschrijden, wordt de aanbeveling berekend op basis van de overige categorieën; het paneel geeft aan welk deel van de overschrijding afkomstig is van hoeveel categorieën en die limiet wordt bij toepassing niet gewijzigd.
- Het cachepaneel voor facettenzoekopdrachten maakt onderscheid tussen cachetabellen en indextabellen, toont hoe de omvang ervan zich de afgelopen dagen heeft ontwikkeld met een waarschuwing indien deze snel toeneemt, geeft een overzicht van de winkels waar ps_facetedsearch ontbreekt of is uitgeschakeld en bevat een link naar de standaardconfiguratie ervan. Facet Shield leest deze tabellen alleen: het wijzigt of verwijdert ze nooit.
- Het paneel werkt aanzienlijk sneller in winkels met veel geregistreerd verkeer: bij meer dan een half miljoen registraties daalt de laadtijd van ongeveer 20 seconden naar slechts enkele seconden, en tot een fractie van een seconde indien het binnen tien minuten opnieuw wordt geopend. De weergegeven cijfers blijven ongewijzigd.
- Alle nieuwe teksten zijn beschikbaar in de negen talen van de module.
- Het paneel voor ondersteuning en diagnose wordt net vóór de sectie Integrity geplaatst, net als bij de overige PrestaWard-modules, en in de context „alle winkels“ verdwijnt het niet langer: het geeft aan dat er een winkel moet worden geselecteerd.
- Synchroniseert met Integrity telkens wanneer u het dashboard opent, via een verzoek op de achtergrond dat de pagina nooit vertraagt en maximaal één keer per minuut per winkel.
0.1.14
- Stopt met het herhaaldelijk proberen van de registratie bij Integrity wanneer de registratiesleutel van de winkel verandert en geeft een duidelijke melding weer.
- Vernieuwt het ondertekende Integrity-beleid voordat het verloopt en behoudt het huidige beleid en de bijbehorende limieten indien een verlenging mislukt.
- Een ondertekend Integrity-beleid kan de in de winkel geconfigureerde limieten alleen aanscherpen, nooit versoepelen: voor de grootte, het aantal facetten, het aantal waarden en het aantal waarden per facet geldt de laagste waarde van uw limiet en die van het beleid, en de modus (Observatie of Bescherming) bepaalt u zelf.
- Corrigeert de opgenomen beleidssleutel zodat deze werkt in PHP 7.1 en 7.2.
- Voegt het ondersteuningspaneel van GO ON Agency toe in negen talen, met een downloadbaar diagnostisch rapport dat geen klantgegevens bevat en niet automatisch wordt verzonden. Het rapport kan alleen worden gedownload door een medewerker met bewerkingsrechten en voor een geselecteerde winkel.
- Geeft aan dat de module compatibel is vanaf PrestaShop 1.7.7.0, de oudste geteste versie.
0.1.13
- Corrigeert de test voor de registratie en de taken in de Back Office van PrestaShop 9.
- Accepteert de twee geldige formaten voor test-URL’s met eigendom en strikte validatie.
- Verbetert de diagnose en de nieuwe pogingen bij de registratie bij Integrity.
0.1.12
- Bij het verwijderen worden ook de tabel met uitsluitingen per categorie en alle configuratiesleutels van Integrity (installatiefase, test bij registratie, verzegelde inloggegevens en sleutels) volledig verwijderd, zonder enig spoor achter te laten.
- De ontbrekende
index.php -bestanden voor bescherming en de controle op directe toegang via _PS_VERSION_ zijn toegevoegd aan de Back Office-controller en aan de laatste drie updatescripts, net als bij de overige toegangspunten van de module. - Maakt gebruik van het gedeelde ontwerpsysteem van PrestaWard: het Back Office-dashboard gebruikt de gemeenschappelijke donkere koptekst, de uniforme statusindicator (Uitgeschakeld/Observeert/Beveiligt) en het paneel ‘GO ON-monitoring’, die worden aangestuurd vanuit één gedeeld stylesheet dat lokaal wordt gehost.
0.1.11 — beveiligingsupdate
- Uitsluitingen per categorie voorkomen alleen de normale complexiteitsanalyse: de volledige PHP-serialisatiesignaturen worden nog steeds geanalyseerd, geregistreerd en altijd geblokkeerd in de modus Bescherming.
- Documenteert dat
ps_facetedsearch 4.0.4 of hoger vereist is om CVE-2026-54159 te verhelpen; Facet Shield blijft een maatregel voor verdediging in de diepte en is geen vervanging voor de officiële patch.
0.1.10
- Lokale URL-simulator of
q, dagelijkse trend op basis van bestaande aggregaten en afgebakende CSV-exports. - Controleerbare uitsluitingen per categorie, met verplichte reden en logische verwijdering; IP-adressen en user-agents worden niet uitgesloten.
- De eerste activering van Bescherming vereist eigen bewijs van Observatie en berekent een voorzichtige schatting van de impact met het voorgestelde beleid; zonder waargenomen verzoeken is het niet mogelijk de blokkering te activeren.
- Alle productiemappen van het pakket bevatten een
index.php-bestand dat de uitvoering beëindigt, inclusief views/js. - De handleiding beschrijft hoe u Integrity per winkel opnieuw kunt instellen na het roteren van
_COOKIE_KEY_, zonder de vorige sleutel te herstellen of te delen. - Extra bescherming tegen volledige PHP-serialisatie-headers in facetzoekopdrachten, zonder normale waarden te blokkeren die tekst bevatten zoals
O:. - Configureerbare melding per winkel wanneer de schatting van de cache van de facetzoekfunctie de gedefinieerde drempel overschrijdt; de module wist of werkt niets automatisch bij.
- De herhalingspogingen en heartbeats van Integrity worden niet langer uitgevoerd binnen de synchrone weergave van een scherm in de Back Office: ze worden geprogrammeerd via een geauthenticeerd en beperkt asynchroon verzoek.
- De weergave van het oude overzicht van gebeurtenissen wordt verwijderd zonder historische gegevens te wissen, en het bestaande updatepaneel blijft behouden als enige melding van nieuwe versies.
0.1.9
- De registratie maakt nu gebruik van de native module-dispatcher van PrestaShop en is niet langer afhankelijk van gebruiksvriendelijke URL’s,
.htaccess -regels of route-caches. - De update vanaf eerdere versies herstelt op idempotente wijze de benodigde hooks zonder beleidsregels of statistieken te verwijderen.
- Bij het openen van het dashboard wordt automatisch gecontroleerd of er een nieuwe versie beschikbaar is, met een cache van zes uur en zonder de Back Office te blokkeren indien het manifest niet reageert.
- Werking getest in PrestaShop 1.7, 8 en 9.
0.1.8
- De bescherming is beperkt tot daadwerkelijke categorie- en zoekcontrollers, waardoor wordt voorkomen dat parameters
q die geen deel uitmaken van de facetten, worden geblokkeerd. - Geblokkeerde verzoeken
HEAD retourneren uitsluitend headers, zonder body. - De diagnose identificeert de user-agent zoals opgegeven en geeft een correcte uitleg van het verkorte user-agent-voorbeeld dat optioneel wordt bewaard.
- Integrity wordt gepresenteerd met een minimale status van verbinding en synchronisatie, zonder interne details die de gebruiker in verwarring kunnen brengen.
- Functionele compatibiliteit getest in PrestaShop 1.7, 8 en 9.
0.1.7
- Automatische heartbeat zonder cron: het verkeer van de winkel activeert een beperkte lokale poll en de server vernieuwt de aanwezigheid bij de Integrity API zonder inloggegevens aan de browser bloot te geven.
- Atomische vergrendeling per winkel, een interval van zes uur en een wachttijd van vijftien minuten na storingen om dubbele verzendingen te voorkomen.
- De handmatige synchronisatie van Integrity vernieuwt ook de heartbeat.
- Compatibiliteit getest in PrestaShop 1.7, 8 en 9.
0.1.6
- Geauthenticeerde heartbeat, automatische nieuwe pogingen en gedetailleerde verbindingsdiagnose met de Integrity API.
- Optionele diagnose ook in Observatie, met identificatie van de medewerker, filters op bot en reden, paginering en een beperkte steekproef van de combinatie van facetten.
- Bewaring onder beheer van de beheerder: aantal steekproeven, geschatte opslagruimte en handmatig verwijderen vanuit de Back Office.
- Visuele en alleen-lezen-indicatoren met betrekking tot de grootte, geschatte records en tabellen van de facetcache.
- Herziene interface: modi en activering van Bescherming onder ‘Wat het doet’, afgebakende secties en de Integrity API naar het einde verplaatst.
- Geen IP-adressen, cookies of volledige URL’s; teksten beschikbaar in negen talen.
- Installatie, blokkering, diagnose, cache, verwijdering en herinstallatie getest in PrestaShop 1.7, 8 en 9.
0.1.5
- Automatische en niet-blokkerende registratie in de Integrity API door middel van een controle van de winkel.
- Voor de installatie zijn geen accounts, API-sleutels of handmatige registratiestappen vereist.
- Geverifieerde, ondertekende beleidsdocumenten met vertrouwensankers zijn in de versie opgenomen.
0.1.4
- Complexiteitshistogrammen en atomaire telling voor alle geanalyseerde verzoeken.
- Waardelimieten per facet, onjuist opgebouwde verzoeken en beperkte verzoekcontext.
- Observatiestatus, begin van de statistische periode en beveiligde reset per winkel.
- Redenen en statistieken vertaald.
0.1.3
- Indicatoren voor geanalyseerde verzoeken, binnen de limiet, overschrijdingen en daadwerkelijke blokkades.
- Toegevoegd per winkel en per minuut zonder IP, URL, user-agent of geselecteerde waarden.
- Toegankelijke modusselector en visuele PrestaWard-shell voor desktop en mobiel.
0.1.2
- Installatie-ID en winkel voorbereid voor de Integrity API.
- Ondertekend beleid met de laatste geldige status per winkel en veilige terugkeer naar Observatie.
- Verbindingsstatus in handmatige herhalingspoging vanuit de Back Office, zonder oproepen vanuit de Front Office.