Änderungsprotokoll — PrestaWard Facet Shield
Dieses Changelog fasst Version für Version die Auswirkungen auf Shops und E-Commerce-Teams zusammen.
0.1.16
- Neu: Grenzwerte nach Kategorie und Katalogebene. Eine Kategorie oder alle Kategorien einer Ebene können eigene Grenzwerte haben (Abfrageumfang, Facetten, Gesamtwerte und Werte innerhalb einer Facette); ein leerer Grenzwert greift auf die nächste Ebene zurück, und die globalen Grenzwerte bilden weiterhin die Grundlage. Eine signierte Integrity-Richtlinie schränkt zudem die kategorienspezifischen Grenzwerte ein.
- Neu: Vorgeschlagene Grenzwerte nach Kategorie. Das Dashboard listet die Kategorien auf, für die ein anderer Grenzwert erforderlich ist, gibt an, bei wie vielen Anfragen die Sperre derzeit greifen würde, und zeigt den Vorschlag an; die Anwendung auf eine Kategorie erfolgt mit einem Klick. Es gilt die bewährte Regel des globalen Vorschlags: Eine Kategorie, die nach automatisiertem Crawling aussieht, wird niemals gelockert.
- Neu: Pilot-Schutz nach Kategorie. Befindet sich der Shop im Modus der Beobachtung, können die von Ihnen ausgewählten Kategorien blockieren, während die übrigen nur beobachten. Dies erfordert eine gültige, unterzeichnete Integrity-Richtlinie (ohne diese beobachtet Facet Shield wie bisher nur) sowie eine ausdrückliche Bestätigung pro Kategorie; das Beenden des Pilotbetriebs erfolgt mit einem Klick.
- Neu: Begrenzung der Anfragen pro Adresse, optional. Zählt die facettierten Anfragen pro Minute und Adresse (standardmäßig 30 pro Minute, zwischen 5 und 600); bei Überschreitung des Limits wird die Adresse im Modus „Schutz“ vorübergehend gesperrt (standardmäßig eine Stunde, bis zu 24 Stunden) mit HTTP-Status 429 und „Retry-After“, während sie im Modus „Beobachtung“ lediglich gezählt wird. Es wird keine IP-Adresse gespeichert: lediglich ein mit einem Schlüssel geschützter Hash, der kurz nach Ablauf der Sperre gelöscht wird, sodass es keine permanente Blacklist gibt. Es wird die Adresse berücksichtigt, die PrestaShop (über vertrauenswürdige Proxys) auflöst; die Adressen und Bereiche Ihrer Zulassungsliste werden niemals gezählt, und ein Datenbankproblem führt niemals zur Sperrung eines Kunden.
- Neu: Verifizierte Suchmaschinen. Im Bereich „Schutz“ erhält ein Googlebot oder Bingbot, dessen Reverse- und Forward-DNS mit den offiziellen Servern übereinstimmen, eine „kostengünstige“ Antwort mit „noindex“ und der kanonischen URL der Kategorie anstelle eines 403-Fehlers, sodass die URL des Filters aus dem Index entfernt wird und keine Facetten-SQL-Abfragen ausgeführt werden. Es werden nur diejenigen abgefragt, die angeben, zu diesen Suchmaschinen zu gehören; das Ergebnis wird im Cache gespeichert (24 Stunden, sofern gültig, andernfalls eine Stunde) und die Abfragen sind pro Minute für den gesamten Shop begrenzt.
- Anzeichen für Fehlalarme: Anfragen, die die Grenzwerte überschreiten, werden auch dann gezählt, wenn sie von einem Kunden mit aktiver Sitzung, von einer verifizierten Suchmaschine oder aus einer schnellen Abfolge von zehn oder mehr Anfragen pro Minute stammen, und die Statistiken zeigen diese drei Zahlen mit ihrem jeweiligen Anteil an. Die Bursts werden gemessen, solange das Limit pro Adresse aktiv ist.
- Neu: optionale E-Mail-Benachrichtigungen über die E-Mail-Einstellungen des Shops: schnelles Anwachsen des Caches (maximal einmal täglich), Spitzen bei blockierten Anfragen (maximal alle sechs Stunden) sowie eine separate wöchentliche Zusammenfassung, für bis zu fünf Empfänger Ihrer Wahl sowie mit einer Schaltfläche für eine Test-E-Mail. Keine PDF-Dateien oder Links im Text. Der Versand erfolgt im Rahmen der Hintergrundwartung, niemals beim Ausliefern einer Seite an einen Kunden.
- Neu: Automatische Cache-Leerung, optional. Wenn der Cache der Facettensuche die von Ihnen gewählte Größe überschreitet, fordert Facet Shield das Modul ps_facetedsearch auf, seinen eigenen Cache mit der von diesem Modul angebotenen Methode zu leeren – maximal einmal täglich – und vermerkt dies im Support-Protokoll. Verfügt die installierte Version nicht über diese Methode, bleibt alles unverändert. Facet Shield löscht weiterhin niemals die Tabellen eines anderen Moduls.
- Hinweis zu anfälligen Versionen von ps_facetedsearch, basierend auf einer kleinen Tabelle, die im Modul enthalten ist (es wird nichts heruntergeladen): Die Versionen 3.0.0 bis 4.0.3 sind von CVE-2026-54159 betroffen, das in Version 4.0.4 behoben wurde; das Panel empfiehlt ein Update.
- Das Dashboard ist in Registerkarten unterteilt („Übersicht“, „Limits und Kategorien“, „Traffic und Bots“, „Statistiken“, „Cache und Wartung“ sowie „Einstellungen“). Die Registerkarte „Übersicht“ zeigt lediglich den Modus, die letzten 24 Stunden, eine Hauptaktion und maximal eine Warnmeldung an; es wird nur die aktuell geöffnete Registerkarte berücksichtigt. Das Support-Dashboard von GO ON Agency verfügt über eine eigene Registerkarte „Support“, die stets an letzter Stelle steht, und der Integrity-Status befindet sich am Ende aller Registerkarten. In der Kopfzeile wird nun das Logo von GO ON Agency angezeigt.
- Die Registerkarte „Limits und Kategorien“ ist in Karten gegliedert: globale Limits, Auswirkungen der Vorschläge mit Schaltflächen in Standardgröße und eine Tabelle mit Regeln pro Kategorie sowie ein Formular zum Hinzufügen weiterer Regeln. Die Registerkarte „Cache“ verwendet ausklappbare Blöcke und eine einzige Zeile mit Statistiken.
- Die Benachrichtigungs-E-Mails zeigen das Logo Ihres Shops in der Kopfzeile (mit dem Namen des Shops als Alternativtext) und eine einheitliche Fußzeile mit dem Logo von GO ON Agency sowie der Signatur „PrestaWard by GO ON Agency“, ohne Links oder Kontaktadressen. Das Logo in der Fußzeile ist eine Datei des Moduls selbst, die von Ihren Shops bereitgestellt wird.
- Einheitliches Erscheinungsbild des Dashboards in allen vier PrestaWard-Modulen: Abschnittsüberschriften, Formularfelder mit neutralen Rahmen und einheitliche ausklappbare Blöcke, einzeilige Statistiken sowie ein größeres Logo der GO ON Agency in der Kopfzeile. Die Hauptschaltfläche erhält nun eine einheitliche Farbe der Marke ohne Farbverlauf.
- Behebt das Problem, dass in PrestaShop 9 die Registerkarten im Administrationsbereich als unterstrichene Links und die Abschnittsüberschriften in Großbuchstaben angezeigt wurden. Die allgemeinen Stile heben diesen Effekt nur innerhalb des PrestaWard-Panels auf, sodass PrestaShop 1.7 und 8 unverändert wie zuvor dargestellt werden.
- Behebt das Problem, dass in PrestaShop 1.7 das Stylesheet des Moduls beim Registrieren mit der Versionsnummer in der Adresse verworfen wurde. Nun wird die Datei überprüft und ohne Parameter registriert, sodass das neue Erscheinungsbild in den Versionen 1.7, 8 und 9 angezeigt wird.
- Es wurde korrigiert, dass in PrestaShop 9 die Aktionsformulare des Dashboards und die Synchronisierung mit Integrity das Sicherheitstoken mit einer Methode überprüften, die PrestaShop 9 nicht verwendet, wodurch diese möglicherweise abgelehnt wurden. Die Validierung erfolgt nun über den Dienst von PrestaShop 9; in PrestaShop 1.7 und 8 bleibt die Überprüfung unverändert.
- Wenn die Verbindung zu Integrity derzeit nicht aktualisiert werden kann, zeigt das Dashboard eine einzige Meldung an: Die gespeicherte Verbindung ist weiterhin gültig und der Versuch wird automatisch wiederholt. Die Bezeichnungen aller Registerkarten sind in die neun Sprachen übersetzt.
- Behebt das Problem, dass die Verbindung zu Integrity im Kontext „alle Shops“ beeinträchtigt war: Die Identität der Installation wird nun in jedem Kontext als Einheit aus dem globalen Bereich (oder aus dem Shop, in dem sie gespeichert ist) gelesen; das Update überträgt eine in einem Shop gespeicherte Identität in den globalen Bereich, ohne sie neu zu generieren, und falls sie nicht gelesen werden kann, bleibt der Status von Integrity unverändert.
- Behebt das Problem, dass sich die Tabelle auf der Registerkarte „Cache“ auf dem Desktop um einige Pixel seitlich verschoben hat: Der Container füllt nun den Raum zwischen seinen Rändern aus.
- Alle neuen Texte sind in den neun Sprachen des Moduls verfügbar. Das Update fügt den Zugriffsstatistiken eine kleine Tabelle und drei Zähler hinzu und löst selbst keine weiteren Aktionen aus; die Vereinbarung mit der Integrity-API bleibt unverändert, und eine gültige, unterzeichnete Richtlinie kann weiterhin lediglich die Grenzwerte verschärfen.
0.1.15
- Die Zugriffsstatistiken wachsen nicht mehr unbegrenzt weiter: Jede Stunde werden die minutengenauen Aufzeichnungen, die länger als eine Stunde zurückliegen, zu einem stündlichen Wert zusammengefasst, ohne dass sich die Gesamtwerte oder Grafiken ändern, und die Daten, die älter sind als der neue Zeitraum „Aufbewahrungsdauer der Statistiken (Tage)“ (standardmäßig 90, zwischen 30 und 365), werden in kleinen Stapeln im Hintergrund gelöscht, niemals während einer Seite an einen Kunden ausgeliefert wird.
- Die Bot-Diagnose hört nicht mehr auf, Stichproben zu sammeln, sobald 500 erreicht sind: Sie behält die neuesten bei und verwirft die ältesten. Dies wird über die Einstellung „Zu behaltende Stichproben“ (Standardwert 500, zwischen 50 und 5000) gesteuert.
- Neues Panel „Vorgeschlagene Grenzwerte“: Auf Grundlage des im Modus der Beobachtung erfassten Datenverkehrs schlägt es einen Wert für jeden Grenzwert vor (Abfragegröße, Facetten, Gesamtwerte und Werte innerhalb einer Facette), zeigt an, wie viele Anfragen durch die aktuellen Grenzwerte blockiert werden und wie viele durch den Vorschlag blockiert würden, und erläutert die Hauptursache, beispielsweise welcher Filter aus welcher Kategorie die meisten Überschreitungen verursacht. Über eine Schaltfläche lassen sich die vier vorgeschlagenen Grenzwerte auf den ausgewählten Shop anwenden, ohne den Modus zu wechseln.
- Die Empfehlungen sind niemals strenger als der Standardgrenzwert, lockern einen Grenzwert niemals auf und halten sich an die festgelegten Richtlinien von Integrity, wenn diese strenger sind. Sollten sich die Anfragen, die einen Grenzwert überschreiten, auf wenige Kategorien konzentrieren, wird die Empfehlung auf der Grundlage der übrigen Anfragen berechnet; das Dashboard zeigt an, welcher Anteil der Überschreitung auf wie viele Kategorien entfällt, und dieser Grenzwert wird bei der Anwendung nicht geändert.
- Das Cache-Panel für die Facettensuche unterscheidet zwischen Cache- und Index-Tabellen, zeigt deren Größenentwicklung in den letzten Tagen an und gibt eine Warnung aus, falls die Größe schnell zunimmt; es listet die Shops auf, in denen ps_facetedsearch fehlt oder deaktiviert ist, und enthält einen Link zu dessen nativer Konfiguration. Facet Shield liest diese Tabellen lediglich: Es ändert oder löscht sie niemals.
- Das Dashboard ist in Shops mit hohem Datenaufkommen deutlich schneller: Bei mehr als einer halben Million Datensätzen verkürzt sich die Ladezeit von etwa 20 Sekunden auf wenige Sekunden und auf den Bruchteil einer Sekunde, wenn es innerhalb von weniger als zehn Minuten erneut geöffnet wird. Die angezeigten Zahlen ändern sich nicht.
- Alle neuen Texte sind in den neun Sprachen des Moduls verfügbar.
- Das Support- und Diagnose-Panel wird – wie bei allen anderen PrestaWard-Modulen – direkt vor dem Abschnitt Integrity platziert und verschwindet im Kontext „Alle Shops“ nicht mehr: Es weist darauf hin, dass ein Shop ausgewählt werden muss.
- Die Synchronisierung mit Integrity erfolgt bei jedem Öffnen des Panels über eine Hintergrundanfrage, die die Seite niemals verlangsamt und höchstens einmal pro Minute und Shop durchgeführt wird.
0.1.14
- Beendet die wiederholten Registrierungsversuche bei Integrity, sobald sich der Registrierungsschlüssel des Shops ändert, und zeigt eine eindeutige Meldung an.
- Erneuert die signierte Integrity-Richtlinie, bevor sie abläuft, und behält die geltende Richtlinie sowie deren Beschränkungen bei, falls eine Verlängerung fehlschlägt.
- Eine unterzeichnete Integrity-Richtlinie kann die im Shop konfigurierten Grenzwerte nur verschärfen, niemals lockern: Für die Größe, die Anzahl der Facetten, der Werte und der Werte pro Facette gilt der jeweils niedrigere Wert aus Ihrem Grenzwert und dem der Richtlinie, und den Modus (Beobachtung oder Schutz) legen Sie selbst fest.
- Korrigiert den enthaltenen Richtlinien-Schlüssel, damit er unter PHP 7.1 und 7.2 funktioniert.
- Fügt das Support-Panel der GO ON Agency in neun Sprachen hinzu, einschließlich eines herunterladbaren Diagnoseberichts, der keine Kundendaten enthält und nicht automatisch versendet wird. Er wird ausschließlich von einem Mitarbeiter mit Bearbeitungsberechtigung und für einen ausgewählten Shop heruntergeladen.
- Gibt die Kompatibilität ab PrestaShop 1.7.7.0 an, der ältesten getesteten Version.
0.1.13
- Korrigiert den Test der Registrierung und die Aufgaben im Backoffice von PrestaShop 9.
- Es akzeptiert die beiden zulässigen Formate für Test-URLs mit strenger Validierung.
- Verbessert die Diagnose und die Wiederholungsversuche bei der Registrierung in Integrity.
0.1.12
- Bei der Deinstallation werden zudem die Tabellen der Ausschlüsse nach Kategorien sowie alle Schlüssel von Integrity (Installationsphase, Test der Registrierung, versiegelte Anmeldedaten und Schlüssel) spurlos entfernt.
- Die fehlenden Schutzdateien
index.php sowie die Überprüfung auf direkten Zugriff über _PS_VERSION_ wurden im Backoffice-Controller und in den letzten drei Aktualisierungsskripten hinzugefügt, ebenso wie an den übrigen Einstiegspunkten des Moduls. - Übernimmt das gemeinsame Designsystem von PrestaWard: Das Backoffice-Panel verwendet die einheitliche dunkle Kopfzeile, die einheitliche Statusanzeige (Deaktiviert/Beobachtet/Schützt) und das Panel „GO ON-Überwachung“, die aus einem einzigen gemeinsamen, lokal gehosteten Stylesheet bereitgestellt werden.
0.1.11 – Sicherheitsupdate
- Ausschlüsse nach Kategorie verhindern lediglich die normale Komplexitätsanalyse: Vollständige PHP-Serialisierungssignaturen werden im Schutzmodus weiterhin analysiert, protokolliert und stets blockiert.
- Es wird dokumentiert, dass
ps_facetedsearch 4.0.4 oder höher erforderlich ist, um CVE-2026-54159 zu beheben; Facet Shield bleibt eine Maßnahme im Rahmen einer mehrschichtigen Verteidigung und ist kein Ersatz für den offiziellen Patch.
0.1.10
- Lokaler URL-Simulator oder
q, täglicher Trend auf Basis bestehender Aggregate und begrenzter CSV-Exporte. - Nach Kategorie überprüfbare Ausschlüsse mit obligatorischem Grund und logischer Löschung; IP-Adressen und User-Agents werden nicht ausgeschlossen.
- Die erstmalige Aktivierung von „Schutz“ erfordert eigene Nachweise der Beobachtung und berechnet eine konservative Einschätzung der Auswirkungen unter Berücksichtigung der vorgeschlagenen Richtlinie; ohne beobachtete Anfragen lässt sich die Sperre nicht aktivieren.
- Alle Produktionsverzeichnisse des Pakets enthalten eine Datei
index.php, die die Ausführung beendet, einschließlich views/js. - Die Anleitung beschreibt, wie Sie Integrity pro Shop neu registrieren können, nachdem Sie
_COOKIE_KEY_ rotiert haben, ohne den bisherigen Schlüssel wiederherzustellen oder weiterzugeben. - Zusätzlicher Schutz vor vollständigen PHP-Serialisierungs-Headers in Facettenabfragen, ohne normale Werte zu blockieren, die Text enthalten, wie z. B.
O:. - Konfigurierbare Benachrichtigung pro Shop, wenn die geschätzte Größe des facettierten Such-Caches den festgelegten Schwellenwert überschreitet; das Modul löscht oder aktualisiert nichts automatisch.
- Die Wiederholungsversuche und Heartbeats von Integrity werden nicht mehr innerhalb des synchronen Renderings einer beliebigen Seite des Backoffice ausgeführt: Sie werden über eine authentifizierte und begrenzte asynchrone Anfrage programmiert.
- Die Abfrage der alten Ereignisübersicht wird entfernt, ohne historische Daten zu löschen, und das bestehende Update-Panel bleibt als einzige Benachrichtigung über neue Versionen erhalten.
0.1.9
- Die Registrierung nutzt nun den nativen Modul-Dispatcher von PrestaShop und ist nicht mehr auf benutzerfreundliche URLs,
.htaccess-Regeln oder Routen-Caches angewiesen. - Das Update von früheren Versionen repariert die erforderlichen Hooks idempotent, ohne Richtlinien oder Statistiken zu löschen.
- Beim Öffnen des Dashboards wird automatisch geprüft, ob eine neue Version vorliegt, wobei ein Cache von sechs Stunden verwendet wird und das Backoffice nicht gesperrt wird, falls das Manifest nicht reagiert.
- Der Ablauf wurde in PrestaShop 1.7, 8 und 9 validiert.
0.1.8
- Der Schutz beschränkt sich auf die eigentlichen Kategorie- und Such-Controller, wodurch vermieden wird, dass Parameter
q blockiert werden, die nicht zu den Facetten gehören. - Blockierte
HEAD-Anfragen geben ausschließlich Header zurück, ohne Body. - Die Diagnose identifiziert den User-Agent wie angegeben und erläutert korrekt den verkürzten User-Agent-String, der optional beibehalten wird.
- Integrity präsentiert sich mit einem auf das Wesentliche reduzierten Verbindungs- und Synchronisationsstatus, ohne interne Details, die den Nutzer verwirren könnten.
- Die funktionale Kompatibilität wurde in PrestaShop 1.7, 8 und 9 überprüft.
0.1.7
- Automatischer Heartbeat ohne Cron: Der Datenverkehr des Shops löst eine begrenzte lokale Abfrage aus, und der Server bestätigt die Präsenz gegenüber der Integrity-API, ohne Anmeldedaten gegenüber dem Browser offenzulegen.
- Atomare Sperre pro Shop, ein Zeitintervall von sechs Stunden und eine Wartezeit von fünfzehn Minuten nach Fehlern, um doppelte Übermittlungen zu vermeiden.
- Die manuelle Synchronisierung von Integrity aktualisiert ebenfalls den Heartbeat.
- Kompatibilität geprüft für PrestaShop 1.7, 8 und 9.
0.1.6
- Authentifizierter Heartbeat, automatische Wiederholungsversuche und detaillierte Verbindungsdiagnose mit der Integrity-API.
- Optionale Diagnose auch im Beobachtungsmodus, mit Identifizierung des User-Agents, Filtern nach Bot und Grund, Paginierung und einer begrenzten Stichprobe der Facettenkombination.
- Vom Administrator gesteuerte Aufbewahrung: Anzahl der Stichproben, geschätzter Speicherplatz und manuelles Löschen über das Backoffice.
- Visuelle und schreibgeschützte Anzeigen zu Größe, geschätzten Datensätzen und Tabellen des Facetten-Caches.
- Neugestaltete Benutzeroberfläche: Modi und Aktivierung des Schutzes unter „Was es leistet“, abgegrenzte Abschnitte und die Integrity-API an das Ende verschoben.
- Keine IP-Adressen, Cookies oder vollständigen URLs; Texte in neun Sprachen verfügbar.
- Installation, Sperrung, Diagnose, Cache, Deinstallation und Neuinstallation wurden in PrestaShop 1.7, 8 und 9 überprüft.
0.1.5
- Automatische und nicht blockierende Registrierung in der Integrity-API mittels Nachweis der Kontrolle über den Shop.
- Für die Installation sind weder Konten noch API-Schlüssel noch manuelle Registrierungsschritte erforderlich.
- Signierte Richtlinien, die mit in der Version enthaltenen Vertrauensankern verifiziert wurden.
0.1.4
- Komplexitätshistogramme und atomare Zählungen für alle analysierten Anfragen.
- Wertgrenzen pro Facette, fehlerhafte Anfragen und eingeschränkter Anfragekontext.
- Beobachtungsstatus, Beginn des statistischen Zeitraums und geschütztes Zurücksetzen pro Shop.
- Gründe und Statistiken wurden übersetzt.
0.1.3
- Anzeigen zu analysierten Anfragen, innerhalb der Grenzwerte, Überschreitungen und tatsächlichen Sperrungen.
- Hinzufügungen pro Shop und Minute ohne IP, URL, User-Agent oder ausgewählte Werte.
- Barrierefreier Modus-Selektor und visuelle PrestaWard-Shell für Desktop und Mobilgeräte.
0.1.2
- Für die Integrity-API vorbereitete Installations- und Shop-Identität.
- Unterzeichnete Richtlinie mit dem jeweils gültigen Status pro Shop und sicherer Rückführung zur Beobachtung.
- Verbindungsstatus und manueller Wiederholungsversuch über das Backoffice, ohne Aufrufe aus dem Frontoffice.