Zum Hauptinhalt springen
Die Datei inquiry-global.config enthält die Schutzregeln, die für alle Formulare eines Shops gelten. Jede Regel lässt sich global aktivieren und für einzelne Formulare gezielt ein- oder ausschalten. Die Einstellungen des einzelnen Formulars stehen dagegen in seiner Konfigurationsdatei.

Globale Konfigurationsdatei inquiry-global.config

Zusätzlich zu den individuellen Formular-Konfigurationsdateien kann auch eine globale Konfigurationsdatei angelegt werden, deren Einstellungen sich im Standard auf alle Formulare des Shops beziehen. Innerhalb der Datei kann definiert werden, ob die Einstellungen tatsächlich für alle Formulare des Shops gelten oder nur für bestimmte Formulare. Diese Konfigurationsdatei muss inquiry-global.config heißen. Sie muss im Online Servicebereich im Service Konfiguration unterhalb des Tabs Konfiguration > Shop im Abschnitt Global.

Erklärung und Beschreibung der Parameter

Parameter und Erklärungen für <Protection>

Über den Abschnitt <Protection> können erweiterte Sicherheitsmechanismen zur Vermeidung von SPAM für die Formulare hinterlegt werden, die über das WEBSALE Formular-Modul Inquiry4 erstellt worden sind.

Parameter und Erklärungen für +Entry

Aktivierung / Deaktivierung nur für bestimmte Formulare

Aktivierung nur für bestimmte Formulare

Die Einschränkung bestimmter Zeichenfolgen, beispielsweise das Untersagen der Eingabe von „ABCDE“, wird in der Datei inquiry-global.config definiert. Diese Einschränkung ist jedoch standardmäßig nicht für alle Formulare aktiv (Standard = inactive).
Um die Zeichenfolgenprüfung gezielt für ein bestimmtes Formular, beispielsweise das Kontaktformular (contact.config), zu aktivieren, muss der folgende Eintrag in der zugehörigen Formular-Konfigurationsdatei vorgenommen werden:
Innerhalb des <Protection>-Abschnitts können über den Parameter +ID gezielt Sicherheitsmechanismen aus der globalen Konfigurationsdatei eingebunden und aktiviert werden. Dadurch lässt sich flexibel steuern, welche Schutzmaßnahmen für welche Formulare gelten.

Deaktivierung nur für bestimmte Formulare

In der Datei inquiry-global.config wird die Zeichenfolgenprüfung, beispielsweise das Untersagen der Eingabe von „ABCDE“, standardmäßig für alle Formulare aktiviert (Standard = active).
Falls diese Zeichenfolgenprüfung für ein bestimmtes Formular, beispielsweise das Kontaktformular (contact.config), deaktiviert werden soll, muss in der jeweiligen Formular-Konfigurationsdatei folgender Eintrag vorgenommen werden:
Innerhalb des <Protection>-Abschnitts können über den Parameter -ID gezielt Sicherheitsmechanismen aus der globalen Konfigurationsdatei deaktiviert werden. Dadurch lässt sich flexibel steuern, welche Schutzmaßnahmen für welche Formulare gelten.

Konfiguration von IP-Reputationslisten

Die IPReputationList ermöglicht den Abgleich eingehender Anfragen mit bekannten IP-Reputationslisten.Dadurch können Anfragen von als schädlich oder verdächtig eingestuften IP-Adressen automatisch blockiert werden. In der globalen Konfigurationsdatei inquiry-global.configmuss der folgende +Entry hinzugefügt werden, um die Überprüfung gegen bestimmte IP-Reputationslisten zu aktivieren.
  • Attribute
    • ID = IPListValidation: Eindeutige ID für diesen Sicherheitsmechanismus.
    • Standard = active: Die Regel ist standardmäßig aktiv, sofern sie nicht explizit in einem bestimmten Formular deaktiviert wird.
    • Action = block: Gibt an, dass Anfragen von einer gelisteten IP blockiert werden. Alternativ kann ignore gesetzt werden
    • Type = IPReputationList: Definiert den Sicherheitsmechanismus als IP-Reputationsprüfung.
    • IPReputationList =: Liste der externen IP-Blocklisten, die zur Prüfung herangezogen werden. Mehrere Werte werden durch Kommas getrennt.
Alle Parameter und deren Beschreibung sind unter “Parameter und Erklärungen für+Entry” noch einmal ausführlich aufgeführt.

Konfiguration Web Application Firewall (WAF)-Prüfungen

Die Web Application Firewall (WAF) schützt vor bekannten Angriffsvektoren, indem verdächtige oder schädliche Anfragen automatisch erkannt und blockiert werden. In der globalen Konfigurationsdatei inquiry-global.config muss der folgende +Entry hinzugefügt werden, um die WAF-Prüfung zu aktivieren:
  • Attribute
    • ID = WAFValidation: Eindeutige ID für diesen Sicherheitsmechanismus.
    • Standard = active: Die Regel ist standardmäßig aktiv, sofern sie nicht explizit in einem bestimmten Formular deaktiviert wird.
    • Action = block: Gibt an, dass Anfragen, die gegen WAF-Regeln verstoßen, blockiert werden. Alternativ kann ignore gesetzt werden.
    • Type = RestrictiveWAFPolicies: Definiert den Sicherheitsmechanismus als restriktive WAF-Policy.
    • WAF =: Platzhalter für zukünftige spezifische WAF-Regeln. Aktuell leer, da die Standardregeln des OWASP Core Rule Set angewendet werden (Stand: 03/2025)
Alle Parameter und deren Beschreibung sind unter “Parameter und Erklärungen für+Entry” noch einmal ausführlich aufgeführt.

Konfiguration eigener Prüfungsmechanismen über REST-Schnittstelle

Die CheckExtern-Funktion ermöglicht es, eine externe Prüfungs-API einzubinden, um Formulareingaben vor der Verarbeitung zu validieren. Alle relevanten Eingabedaten werden per Server-zu-Server-POST-Anfrage als JSON an die angegebene URL gesendet. Die Antwort entscheidet, ob die Anfrage weiterverarbeitet oder blockiert wird. In der globalen Konfigurationsdatei inquiry-global.config muss der folgende +Entry hinzugefügt werden, um eine externe Prüfung zu aktivieren:
  • Attribute
    • ID = externValidation: Eindeutige ID für diesen Sicherheitsmechanismus.
    • Standard = active: Die Regel ist standardmäßig aktiv, sofern sie nicht explizit in einem bestimmten Formular deaktiviert wird
    • Action = block: Gibt an, dass Anfragen, die gegen WAF-Regeln verstoßen, blockiert werden. Alternativ kann ignore gesetzt werden
    • Type = CheckExternDefiniert den Sicherheitsmechanismus als externe Prüfungsanfrage per REST-API
    • CheckExternURL =: Ziel-URL für die externe Prüfung. Muss eine gültige HTTPS-Adresse sein
    • CheckExternOnErrorBehavior =: Fehlverhalten der externen Prüfung: block (Standard) verhindert Anfragen bei technischen Fehlern, pass erlaubt sie trotzdem
    • CheckExternBasicAuth =: Optionale Basic Authentication für die API (Format: user:pass).
    • CheckExternBearerToken =: Optionaler Bearer-Token für API-Authentifizierung. Wird im Header als Authorization: Bearer <Token> gesendet.
Alle Parameter und deren Beschreibung sind unter “Parameter und Erklärungen für+Entry” noch einmal ausführlich aufgeführt. Das Modul sendet alle erfassten Eingaben sowie zusätzliche Informationen als JSON-Objekt per POST an die konfigurierte URL (CheckExternURL), beispielsweise
Parameter oder Strukturen können fehlen, wenn sie nicht für das Formular vorhanden oder definiert sind. Die externe API muss eine gültige JSON-Antwort mit einem HTTP-Statuscode 200 OK zurückgeben. Wichtig ist, dass das externe System innerhalb von 3 Sekunden antwortet, ansonsten wird dies als Kommunikationfehler interpretiert. Die Anfrage wird als erfolgreich gewertet und weiterverarbeitet:
Die Anfrage wird blockiert:
Andere HTTP-Statuscodes oder ungültige Antworten werden als Kommunikationsfehler betrachtet, und das Verhalten wird gemäß CheckExternOnErrorBehavior angewendet (block oder pass).

Konfiguration für das Herausfiltern bestimmter Zeichen aus Eingaben

Die FilterSigns-Funktion ermöglicht das automatische Entfernen unerwünschter Zeichen aus Benutzereingaben. Dadurch können unerwünschte oder sicherheitskritische Zeichen gefiltert werden, bevor die Eingaben weiterverarbeitet werden. In der globalen Konfigurationsdatei inquiry-global.config muss der folgende +Entry hinzugefügt werden, um eine externe Prüfung zu aktivieren:
  • Attribute
    • ID = deleteSignsValidation: Eindeutige ID für diesen Sicherheitsmechanismus.
    • Standard = active: Die Regel ist standardmäßig aktiv, sofern sie nicht explizit in einem bestimmten Formular deaktiviert wird
    • Action = block: Gibt an, dass Anfragen, die gegen WAF-Regeln verstoßen, blockiert werden. Alternativ kann ignore gesetzt werden
    • Type = FilterSigns: Definiert den Sicherheitsmechanismus als Zeichenfilterung.
    • FilterSigns = !$%: Liste der zu entfernenden Zeichen. Mehrere Zeichen werden ohne Trennzeichen angegeben.
Alle Parameter und deren Beschreibung sind unter “Parameter und Erklärungen für+Entry” noch einmal ausführlich aufgeführt.

Konfiguration zusätzlicher Inhaltsfilter mittels Regular Expressions

Die RegEx-Filterung ermöglicht das Blockieren oder Ignorieren von Anfragen, wenn eine bestimmte Zeichenfolge oder ein bestimmtes Muster in den Eingaben erkannt wird. Dies dient zum Schutz vor Injection-Angriffen, Spam oder unerwünschten Eingaben. In der globalen Konfigurationsdatei inquiry-global.config muss der folgende +Entry hinzugefügt werden, um eine externe Prüfung zu aktivieren:
  • Attribute
    • ID = RegExValidation: Eindeutige ID für diesen Sicherheitsmechanismus.
    • Standard = active: Die Regel ist standardmäßig aktiv, sofern sie nicht explizit in einem bestimmten Formular deaktiviert wird
    • Action = block: Gibt an, dass Anfragen, die gegen WAF-Regeln verstoßen, blockiert werden. Alternativ kann ignore gesetzt werden
    • Type = RegEx: Definiert den Sicherheitsmechanismus als Regulären Ausdruck zur Inhaltsprüfung
    • RegEx =: Regulärer Ausdruck, der auf die Eingabe angewendet wird. Wird ein Treffer gefunden, wird die Anfrage gemäß Action behandelt
Alle Parameter und deren Beschreibung sind unter “Parameter und Erklärungen für+Entry” noch einmal ausführlich aufgeführt. Die im Beispiel verwendete RegEx prüft auf typische SQL-Injection- und Spam-Muster:

Fehlermeldungsausgabe der Protection-Regeln im Template

Falls eine Anfrage aufgrund einer Protection-Regel blockiert wurde, kann eine entsprechende Fehlermeldung im InquiryPage-Template ausgegeben werden. Allgemeine Fehlerausgabe für alle Protection-Regeln:
Das Einzeltag gibt die Liste der IDs aus den +Entry-Einträgen aus, die zur Ablehnung der Anfrage geführt haben. Die Ausgabe gilt für alle Sicherheitsmechanismen Falls eine spezifische Fehlermeldung für eine bestimmte Regel erwünscht ist, muss dies über eine dedizierte ID im Template definiert werden, beispielsweise über einen DC-(DesignControl)-Tags, beispielsweise

Verwandte Themen