PrestaShop-module

PrestaWard Facet Shield

Operationele bescherming voor de facetnavigatie van PrestaShop. Detecteert buitensporig complexe filterzoekopdrachten en maakt het mogelijk om uitsluitend die zoekopdrachten te beperken die de werking van de winkel kunnen verstoren.

Exclusieve distributie via de PrestaShop Marketplace (Addons).

Observatie + Bescherming + bewijs

  • Niet wijzigen ps_facetedsearch
  • Begin altijd met Observatie
  • Geaggregeerde statistieken; geen opgeslagen IP-adressen
  • PrestaShop 1.7, 8 en 9

Wat het doet

Facetzoekopdrachten kunnen zeer rekenintensieve filtercombinaties opleveren. Een klein aantal afwijkende verzoeken kan al veel resources verbruiken, categorieën vertragen of een webwinkel ontoegankelijk maken. PrestaWard Facet Shield analyseert deze complexiteit voordat de facetmodule de zoekopdracht verwerkt.

Het vervangt de zoekmachine niet en wijzigt de indexen ervan niet. Het werkt als een afgebakende stroomonderbreker: het observeert het patroon van elk verzoek en wijst, uitsluitend wanneer het beleid uitdrukkelijk wordt geactiveerd, combinaties af die de geconfigureerde limieten overschrijden.

Hoe het werkt

  1. Observeer eerst. Registreer in geaggregeerde vorm de complexiteit van de HTML- en AJAX-verzoeken voor gefacetteerde navigatie.
  2. Bekijk de gegevens. De Back Office toont geanalyseerde verzoeken, binnen de limiet, overschrijdingen, daadwerkelijke blokkades, histogrammen en de statistische periode.
  3. Pas de limieten aan. U kunt filters, facetwaarden en onjuiste verzoeken aanpassen aan het daadwerkelijke gedrag van uw catalogus, met eigen limieten voor een categorie of voor alle categorieën op een bepaald niveau in de catalogus.
  4. Schakel Bescherming pas in wanneer deze is gevalideerd. De wijziging vereist bevestiging en wordt per winkel afzonderlijk geregeld.

Wat is inbegrepen

  • Standaard veilige modus Observatie en expliciete modus Bescherming.
  • Automatische registratie bij de Integrity API: u hoeft geen accounts of sleutels in te stellen.
  • Vroegtijdige complexiteitsanalyse voor HTML- en AJAX-verzoeken voor gefacetteerde navigatie.
  • Per winkel configureerbare limieten voor facetten, waarden en verzoekcontext.
  • Dashboard met aggregaten per minuut, complexiteitshistogram en vertaalde redenen voor overschrijdingen.
  • Paneel met voorgestelde limieten: op basis van het geregistreerde verkeer in Observatie stelt het een waarde voor elke limiet voor, toont het hoeveel verzoeken door de huidige limieten worden geblokkeerd en hoeveel er door de suggestie zouden worden geblokkeerd, en legt het de belangrijkste oorzaak in duidelijke taal uit, bijvoorbeeld welk filter uit welke categorie het grootste deel van de overschrijding veroorzaakt. Met één knop worden de vier voorgestelde limieten toegepast op de geselecteerde winkel zonder de modus te wijzigen.
  • Robuuste aanbevelingen: een aanbeveling is nooit strenger dan de standaardlimiet en overschrijdt nooit het ondertekende Integrity-beleid. 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; de limiet wordt niet versoepeld en het dashboard geeft aan welk deel van de overschrijding afkomstig is uit hoeveel categorieën.
  • Statistieken met instelbare bewaartermijn (standaard 90 dagen, tussen 30 en 365): de registraties per minuut worden per uur gegroepeerd en de verouderde gegevens worden in batches op de achtergrond verwijderd, nooit terwijl een pagina aan een klant wordt weergegeven.
  • De botdiagnostiek bewaart de meest recente steekproeven (standaard 500, instelbaar tussen 50 en 5000) en verwijdert de oudste steekproeven in plaats van het registreren te staken.
  • Het facetcache-paneel, dat onderscheid maakt tussen cachetabellen en indextabellen, toont hoe de omvang zich de afgelopen dagen heeft ontwikkeld, met een waarschuwing indien deze snel toeneemt, en bevat een link naar de eigen configuratie van ps_facetedsearch, waar u de tools vindt om indexen opnieuw op te bouwen en de cache te legen. Facet Shield leest deze tabellen uitsluitend en wijzigt of verwijdert ze nooit.
  • Het paneel werkt aanzienlijk sneller in winkels met veel geregistreerd verkeer: het berekent statistieken, trends en voorgestelde limieten met twee leesbewerkingen en slaat het resultaat tien minuten op in een tijdelijk cachebestand.
  • Synchronisatie met Integrity bij het openen van het paneel, via een verzoek op de achtergrond dat de pagina niet vertraagt en maximaal één keer per minuut per winkel plaatsvindt.
  • Limieten per categorie en per catalogusniveau: een categorie, of alle categorieën op een bepaald niveau, kan zijn 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 vormen. Het ondertekende beleid van Integrity beperkt ook de limieten per categorie.
  • Aanbevolen limieten per categorie: het paneel geeft een overzicht van de categorieën waarvoor een andere limiet nodig is, met het aantal verzoeken waarbij de toegang momenteel zou worden geblokkeerd en de aanbeveling, en past een categorie met één klik toe. Een categorie die op geautomatiseerde verkenning duidt, wordt nooit versoepeld.
  • Bescherming per categorie: wanneer de winkel in de Observatie-modus staat, kunt u ervoor zorgen dat alleen de door u geselecteerde categorieën worden geblokkeerd, terwijl de overige categorieën in de Observatie-modus blijven. Hiervoor is een geldig, ondertekend Integrity-beleid en een expliciete bevestiging per categorie vereist; het uitschakelen ervan is met één muisklik geregeld.
  • 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; 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; er is dus geen permanente zwarte lijst. De adressen en reeksen op uw lijst met toegestane adressen worden nooit meegeteld en een storing in de database leidt nooit tot het blokkeren van een klant.
  • Geverifieerde zoekmachines: in de functie voor bescherming ‘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-foutcode, zodat de URL van het filter uit de index wordt verwijderd zonder dat er facet-SQL wordt uitgevoerd. Er wordt uitsluitend een verzoek verzonden naar degene die aangeeft een van deze zoekmachines te zijn.
  • Signalen 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 de drie cijfers met hun respectieve aandeel.
  • E-mailmeldingen (optioneel), met de e-mailinstellingen van de winkel: snelle groei van de cache (maximaal één keer per dag), pieken in het aantal geblokkeerde verzoeken (maximaal om de zes uur) en een wekelijks overzicht, voor maximaal vijf door u gekozen ontvangers, met een knop voor een testmail. Geen PDF’s of links in de tekst, en de e-mails worden verzonden vanuit het achtergrondonderhoud, nooit tijdens het weergeven van een pagina aan een klant.
  • 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 deze methode beschikt, blijft alles ongewijzigd.
  • Waarschuwing betreffende kwetsbare versies van ps_facetedsearch (van 3.0.0 tot en met 4.0.3, CVE-2026-54159, verholpen in versie 4.0.4), op basis van een kleine tabel die in de module is opgenomen, zonder dat er iets hoeft te worden gedownload.
  • Paneel met tabbladen (Overzicht, Limieten en categorieën, Verkeer en bots, Statistieken, Cache en onderhoud en Instellingen, plus een tabblad Ondersteuning, altijd als laatste): alleen het geopende tabblad wordt weergegeven en het overzicht toont de modus, de afgelopen 24 uur, één hoofdactie en maximaal één waarschuwingsregel.
  • Beveiligde reset van statistieken per winkel.
  • Tabblad ‘Limieten en categorieën’, 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.
  • Waarschuwingsmails met het logo van uw winkel in de koptekst en, in de voettekst, het logo van GO ON Agency met de vermelding „PrestaWard by GO ON Agency”.
  • 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.
  • Begrijpelijke geblokkeerde reacties (HTTP 403 of HTTP 429 met Retry-After binnen de limiet per adres), zonder interne details van het beleid prijs te geven.
  • Uitsluiting van specifieke categorieën uit de complexiteitsanalyse, met controleerbare wijzigingen.
  • Melding in het dashboard wanneer de geschatte cache van de facettenzoekfunctie de door u ingestelde grootte bereikt.
  • Ondersteuningspaneel van GO ON Agency met een downloadbaar diagnostisch rapport. Dit wordt gedownload door een medewerker met bewerkingsrechten, waarbij een specifieke winkel is geselecteerd. Het bevat uitsluitend versies, statussen en tellers; het bevat geen URL’s van verzoeken, IP-adressen of inloggegevens en wordt niet automatisch verzonden.
  • Verbinding met PrestaWard Integrity, waarvan het ondertekende beleid uw limieten alleen maar kan aanscherpen, nooit versoepelen. Op het scherm van de module zorgt de knop ‘Synchroniseren’ ervoor dat de verbinding wordt bijgewerkt.
  • Beheerpaneel en vertalingen in negen talen.

Te controleren beperkingen

Voordat PrestaShop de productquery samenstelt, controleert Facet Shield de filterparameters van de facettenzoekopdracht. De standaardlimieten bedragen 256 bytes voor het filter, 8 facetten, 16 waarden in totaal en 6 waarden per facet; verzoeken met onjuist opgebouwde filters worden afgewezen. U kunt deze limieten per winkel aanpassen en bovendien eigen limieten instellen voor een categorie of voor alle categorieën op een bepaald niveau in de catalogus. Een verzoek dat een van deze limieten overschrijdt, wordt als een overschrijding beschouwd.

Vereisten

  • PrestaShop vanaf versie 1.7.7 tot en met 9 en de PHP-versie die door uw PrestaShop-versie wordt vereist (PHP 7.1 of hoger voor PrestaShop 1.7).
  • Een winkel die gebruikmaakt van de facettenzoekfunctie van PrestaShop: de module analyseert de filterparameter (q) van de categorie- en zoekpagina’s.
  • Om de Bescherming te activeren, moet de winkel ten minste één facetverzoek in de modus van Observatie hebben geregistreerd.
  • E-mailmeldingen maken gebruik van de e-mailinstellingen van de winkel.
  • De limieten, de modus en de statistieken zijn specifiek voor elke winkel. Om het rapport voor ondersteuning te downloaden of de botdiagnostiek te wijzigen, selecteert u een specifieke winkel.

Privacy en toepassingsgebied

Standaard slaat Facet Shield alleen geaggregeerde complexiteitsstatistieken op. Indien u de botdiagnose activeert – die standaard is uitgeschakeld – wordt een beperkte steekproef bewaard van de verzoeken die de limieten overschrijden: maximaal 512 tekens van het facetfilter, de reden, het paginatype, de categorie, de user-agent (maximaal 255 tekens), de teller en de datums. Er worden nooit IP-adressen, cookies of volledige URL’s opgeslagen. Indien u de limiet per adres activeert, wordt alleen een hash met sleutel van het adres opgeslagen, die kort na afloop van de blokkering automatisch wordt verwijderd. De oudste steekproeven worden automatisch verwijderd zodra het door u ingestelde maximum (standaard 500) wordt overschreden; de beheerder kan deze vanuit de module verwijderen en ze kunnen worden geëxporteerd.

Het toepassingsgebied omvat de facetnavigatie voor categorieën en zoekopdrachten, zowel bij normale verzoeken als bij AJAX-verzoeken. Het analyseert geen verzoeken zonder filters, noch de winkelwagen, de bestelling, de formulieren, de klanten of de beheerderstoegang; hiervoor zijn specifieke controles nodig.

Wat het niet doet

  • Het is geen webapplicatie-firewall (WAF): het is een aanvullende beveiliging die beperkt is tot de filters van de facettenzoekfunctie.
  • ps_facetedsearch wordt hierdoor niet vervangen of gecorrigeerd en de indexen ervan worden niet gewijzigd. De module wist de cache niet op eigen initiatief: alleen als u de automatische cache-opschoning activeert, vraagt deze module de betreffende module om de eigen cache te legen via de aangeboden methode, maximaal één keer per dag, en wist nooit de tabellen ervan. U dient zowel PrestaShop als deze module up-to-date te houden.
  • In de observatie-modus wordt niets geblokkeerd, behalve de categorieën die u uitdrukkelijk onder ‘Bescherming’ hebt geplaatst, en alleen zolang er een geldig, ondertekend Integrity-beleid van kracht is. Als het beleid verloopt, beperkt de module zich weer tot observeren totdat het wordt verlengd.
  • Er worden geen permanente zwarte lijsten met adressen bijgehouden: de blokkering op basis van het limiet per adres is tijdelijk en verdwijnt vanzelf.
  • Er gebeurt niets als het verzoek geen filters bevat.
  • De voettekst van de e-mails van de module bevat geen links, contactgegevens of afbeeldingen die buiten uw winkel zijn gehost: het logo van GO ON Agency is een bestand van de module zelf dat vanuit uw winkel wordt weergegeven.

Compatibiliteit en validatie

De module is compatibel met PrestaShop 1.7.7 tot en met 9. Versie 0.1.16 heeft op 15 oktober 2026 de laboratoriumtests doorstaan in PrestaShop 1.7, 8 en 9, zowel bij een schone installatie als bij een update vanaf versie 0.1.15. Controleer, voordat u de module activeert, de installatie, de gebruikelijke filters, de Observatie, de Bescherming, de update en de verwijdering in uw specifieke combinatie van PrestaShop, PHP, thema en modules.

Veilig gebruik

Schakel Bescherming niet in tijdens de installatie. Laat de module in de modus Observatie staan, blader door de gebruikelijke categorieën en filters, bekijk de statistieken en stel limieten in die geen invloed hebben op legitieme klanten. Indien een limiet het daadwerkelijke browsen blokkeert, schakelt u terug naar de modus Observatie, corrigeert u de drempelwaarde en valideert u de instellingen opnieuw.

Vereiste beveiligingsupdate

Facet Shield voegt een specifieke beveiliging toe tegen volledige PHP-serialisatiesignaturen in facetzoekopdrachten, zelfs als een categorie is uitgesloten. Dit is geen vervanging voor de officiële oplossing: om de bekende kwetsbaarheid van de facetmodule te verhelpen, dient u ps_facetedsearch bij te werken naar versie 4.0.4 of hoger. Het paneel waarschuwt u indien het een kwetsbare versie detecteert (van 3.0.0 tot en met 4.0.3, CVE-2026-54159).

Licentie

PrestaWard Facet Shield wordt gedistribueerd onder de Academic Free License 3.0 (AFL-3.0). U mag het gebruiken, bestuderen, wijzigen en herdistribueren in overeenstemming met de voorwaarden daarvan. Het modulepakket bevat de volledige licentie.

Versiegeschiedenis

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.