Bedienung für Shop-Betreiber

Diese Anleitung richtet sich an Shop-Betreiber und Mitarbeitende im OXID-Admin. Sie setzt keinen Server- oder Programmierzugriff voraus. Installation, Update, technische Datenbankpflege und vollständiges Löschen aller Laufzeitdaten sind unter Installation für Agenturen beschrieben.

Schnellstart

  1. Öffnen Sie Erweiterungen ‣ Module ‣ BotProtection ‣ Einstell..

  2. Lassen Sie Bot-Protection aktivieren eingeschaltet und wählen Sie zunächst Passiv (Nur Logging).

  3. Prüfen Sie IP-, User-Agent- und Länderlisten. Lassen Sie unbekannte Werte nicht vorsorglich frei.

  4. Speichern Sie und beobachten Sie unter eComStyle.de ‣ BotProtection mindestens einen typischen Geschäftszeitraum.

  5. Testen Sie Gast-Checkout, Anmeldung, Zahlungsarten, Monitoring, Suchmaschinen und externe Schnittstellen.

  6. Wechseln Sie anschließend auf Moderat (Empfohlen). Verwenden Sie Aggressiv (Max. Schutz) erst nach einer Auswertung oder bei einer akuten Angriffslage.

Tipp

Ändern Sie immer nur wenige Regeln gleichzeitig und notieren Sie Zeitpunkt und Grund. So lässt sich ein Anstieg bestimmter Dashboard-Gründe einer Einstellung zuordnen.

Wer wird geprüft?

BotProtection greift früh im Storefront-Aufruf ein. Es prüft anonyme Besucher, Gastkunden und automatisierte Clients. Bereits angemeldete Kunden und Admin-Benutzer sowie erkannte Admin-Aufrufe werden vollständig durchgelassen.

Die wichtigsten Prüfungen erfolgen in dieser Reihenfolge:

  1. Force-SID wird vor normalen IP- und User-Agent-Whitelists ausgewertet.

  2. IP- und User-Agent-Whitelist geben den Request für alle nachfolgenden Prüfungen frei.

  3. Strikte Länderregel und Länder-Whitelists werden geprüft; ein freigegebenes Land überspringt auch spätere Blacklists und Erkennungen.

  4. DACH-Regel, IP-/Länder-Blacklist und eine bestehende temporäre Sperre werden ausgewertet.

  5. IP- und Subnetz-Rate-Limit, Honeypot, Bot-Signatur, Verhalten, Scan-Challenge und Browser-Fingerprint folgen.

Achtung

Bei widersprüchlichen Listen gewinnt nicht immer die Sperrliste. IP-, User-Agent- und Länderfreigaben werden vor späteren Blacklists geprüft. Force-SID ist die wichtige Ausnahme und kann schon vor diesen Freigaben sperren. Die strikte Länder-Whitelist wird außerdem vor Deutschland automatisch freigeben geprüft. Nehmen Sie de deshalb in die Länder-Whitelist auf, wenn beide Einstellungen gemeinsam verwendet werden. Prüfen Sie Kombinationen im passiven Modus.

Haupteinstellungen

Haupteinstellungen

Einstellung

Standard

Wirkung

Bot-Protection aktivieren

Ein

Schaltet alle Storefront-Prüfungen ein. Bei „Aus“ werden Requests ohne Erkennung, Protokollierung oder automatische Modulbereinigung an OXID weitergegeben. Das OXID-Modul selbst kann trotzdem aktiv bleiben.

Schutzmodus

Moderat

Wählt aggressiv, moderat oder passiv. Der Modus ersetzt die sichtbaren Zahlenfelder nicht automatisch.

Schutzmodi

Passiv (Nur Logging) führt die Erkennung aus und protokolliert Treffer, sendet aber weder 403-Antworten noch Challenges oder neue temporäre Sperren. Das Dashboard bezeichnet diese Treffer weiterhin als „blockiert“; gemeint ist, was im aktiven Betrieb blockiert worden wäre.

Moderat (Empfohlen) wendet die aktivierten Regeln und die eingetragenen Grenzwerte an. Ein fehlender Browser-Fingerprint führt bei eingeschalteter JavaScript-Challenge zur Browserprüfung. Ist die Challenge ausgeschaltet, wird allein wegen dieses Fingerprints im moderaten Modus nicht gesperrt.

Aggressiv (Max. Schutz) arbeitet ebenfalls mit den eingetragenen Grenzwerten. Zusätzlich kann ein fehlender Browser-Fingerprint auch dann zur Sperre führen, wenn die JavaScript-Challenge ausgeschaltet ist.

Rate-Limiting

Rate-Limiting

Einstellung

Standard

Wirkung

Max. Requests pro Zeitfenster

20

Erlaubte Requests einer anonymen IP im Zeitfenster. Erst der nächste Request oberhalb des Werts gilt als Treffer.

Zeitfenster (Sekunden)

60

Zeitraum für den IP-Zähler. Nach Ablauf beginnt der Zähler mit dem nächsten Request neu.

Max. Requests pro Subnetz-Zeitfenster

120

Gemeinsames Limit eines IPv4-/24- oder IPv6-/64-Netzes. 0 oder ein negativer Wert deaktiviert nur dieses Subnetz-Limit.

Subnetz-Zeitfenster (Sekunden)

60

Zeitraum des gemeinsamen Subnetzzählers; Werte unter 30 Sekunden werden wie 30 Sekunden behandelt.

Block-Dauer (Sekunden)

3600

Dauer einer temporären IP-Sperre nach Force-SID oder Honeypot. Ein bloßer Rate-Limit-, Signatur-, Verhaltens- oder Länder-Treffer legt keine solche separate Langzeitsperre an.

Achtung

Ein knappes Subnetz-Limit kann viele unabhängige Kunden eines Mobilfunknetzes, Unternehmens, Providers oder Proxys gemeinsam treffen. Beobachten Sie deshalb sowohl IP- als auch Subnetztreffer im passiven Modus.

Erkennungs-Features

Erkennungs-Features

Einstellung

Standard

Wirkung

Force-SID Bots blockieren (Cookie-less)

Ein

Erkennt force_sid in GET, POST oder URL. Die Prüfung erfolgt vor normalen Whitelists und kann eine temporäre IP-Sperre setzen.

Force-SID Strategie

Sofort blockieren

block reagiert beim ersten Treffer. threshold zählt Treffer derselben IP innerhalb eines eigenen Zeitfensters.

Force-SID Schwellwert (Anzahl Treffer)

3

Anzahl für die Strategie „Schwellwert“. Werte unter 1 werden wie 1 behandelt.

Force-SID Zeitfenster (Sekunden)

300

Zählzeitraum der Schwellwertstrategie; mindestens 30 Sekunden.

Bot-User-Agents blockieren

Ein

Erkennt einen leeren User-Agent, bekannte Bot-/Crawler-/Scraper- und Automatisierungsbegriffe sowie bestimmte unplausible alte Browserkennungen. Eine passende User-Agent-Whitelist greift vorher.

Verhaltensbasierte Erkennung

Ein

Meldet innerhalb von fünf Minuten mindestens fünf Abrufe derselben URL oder mehr als drei verschiedene URLs ohne Referer von derselben IP.

Browser-Fingerprint prüfen

Ein

Prüft, ob Accept-Language, Accept-Encoding oder Accept fehlen. Je nach Modus und Challenge-Einstellung folgt eine Prüfung oder Sperre.

JavaScript-Challenge verwenden

Ein

Zeigt bei geeigneten verdächtigen Requests eine Sicherheitsprüfung, setzt per JavaScript ein Cookie für bis zu 24 Stunden und lädt die ursprüngliche URL nach zwei Sekunden neu.

Auffällige Scan-Requests per JavaScript prüfen

Ein

Prüft anonyme GET-Aufrufe ohne Cookies und Referer, mit Sprache exakt en und typischem HTML-Accept-Header. Statische Dateien sind ausgenommen. Funktioniert nur zusammen mit der JavaScript-Challenge.

Honeypot aktivieren

Ein

Jeder GET- oder POST-Parameter ref_id gilt als Falle, wird protokolliert und kann die IP temporär sperren.

Der Honeypot muss zusätzlich von der betreuenden Agentur als unsichtbarer Link in das Storefront-Template eingebaut werden. Die Einstellung allein fügt keinen Link ein. Verwenden Shop oder Erweiterungen bereits einen legitimen Parameter ref_id, darf der Honeypot erst nach technischer Klärung aktiviert werden.

JavaScript-Challenge aus Kundensicht

Ein verdächtiger Browser sieht eine Seite „Sicherheitsüberprüfung“ mit Ladeanzeige. Nach zwei Sekunden wird die ursprünglich angeforderte Adresse neu geladen. Das Cookie ist an aktuelle IP, User-Agent, Shop-Schlüssel und den Tag gebunden. Browser ohne JavaScript oder Cookies, Datenschutzwerkzeuge mit Cookie-Sperre sowie ein IP-Wechsel können zu wiederholten Prüfungen führen.

Whitelist, Blacklist und Länderregeln

Listenfelder enthalten einen Wert pro Eintrag. Länder werden als zweistellige Codes wie de, at, ch, fr oder us gepflegt.

Listen und Suchmaschinen

Einstellung

Standard

Wirkung

IP-Whitelist (z.B. 192.168.)

Leer

Gibt IPs über einen Präfixvergleich frei. 192.168. trifft deshalb alle so beginnenden Adressen; es handelt sich nicht um eine CIDR-Auswertung. Leere Einträge werden ignoriert.

User-Agent Whitelist

googlebot, bingbot

Gibt jeden User-Agent frei, der den Eintrag unabhängig von Groß- und Kleinschreibung enthält. Leere Einträge werden ignoriert.

Suchmaschinen-Bot Verifikation

Nur User-Agent

off vergibt keinen besonderen Status, ua vertraut einem passenden Whitelist-User-Agent, dns verlangt für Googlebot/Bingbot zusätzlich einen passenden Reverse- und Forward-DNS-Nachweis.

Searchbot Cache TTL (Sekunden)

86400

Speichert das positive oder negative DNS-Prüfergebnis je IP; mindestens 60 Sekunden.

Searchbots trotz Force-SID zulassen

Ein

Nimmt als vertrauenswürdig erkannte Suchmaschinen von Force-SID aus.

Searchbots dürfen Länder-Regeln umgehen

Ein

Lässt als vertrauenswürdig erkannte Suchmaschinen vor den Länderregeln passieren.

Länder-Whitelist (z.B. de, at, ch)

Leer

Gibt ein bekanntes eingetragenes Land für alle nachfolgenden Regeln frei. Ohne strikte Länder-Whitelist ist dies eine Ausnahme-, keine Erlaubnisliste.

Deutschland automatisch freigeben

Aus

Gibt erkannte deutsche Besucher nach der Force-SID-Prüfung vollständig frei, sofern eine zuvor geprüfte strikte Länder-Whitelist Deutschland nicht ausschließt.

Nur DACH-Länder erlauben (DE/AT/CH)

Aus

Sperrt bekannte Länder außerhalb von Deutschland, Österreich und der Schweiz. Ein unbekanntes Land ? wird allein deswegen nicht gesperrt.

Strikte Länder-Whitelist (nur Whitelist-Länder erlauben)

Aus

Sperrt bekannte Länder, die nicht in der Länder-Whitelist stehen. Ist die Liste leer oder das Land unbekannt, sperrt diese Regel nicht.

IP-Blacklist

Leer

Sperrt IPs per Präfixvergleich. Eine vorher greifende IP-, User-Agent- oder Länderfreigabe hat Vorrang.

Länder-Blacklist (z.B. cn, ru)

Leer

Sperrt erkannte Länder aus der Liste. Unbekannte Länder treffen nur, wenn ausdrücklich ein gültiger zweistelliger Code vorliegt; ? ist kein gültiger Listeneintrag.

Warnung

Die User-Agent-Whitelist ist eine eigenständige, vollständige Freigabe. Ihre Einträge umgehen die späteren Regeln auch dann, wenn die zusätzliche DNS-Verifikation ausgeschaltet ist oder scheitert. Ein User-Agent lässt sich leicht nachahmen. Halten Sie diese Liste so klein wie möglich und behandeln Sie die DNS-Auswahl nicht als Ersatz für eine sorgfältige Whitelist.

Lokale Länderermittlung

Die Länderprüfung liest eine lokale IPv4-/IPv6-Datenbank und führt dafür im Storefront-Request weder HTTP- noch Reverse-DNS-Anfragen aus. Nur die optionale Suchmaschinen-DNS-Verifikation kann Netzabfragen auslösen; ihr Ergebnis wird gecacht.

Kann eine IP keinem gültigen zweistelligen Land zugeordnet werden, erscheint ?. DACH- und strikte Whitelist-Regeln lassen diesen Request ausfallsicher passieren. Andere Erkennungen bleiben aktiv.

Logging und Monitoring

Logging und Monitoring

Einstellung

Standard

Wirkung

Logging aktivieren

Ein

Speichert erkannte Treffer mit Zeit, IP, Grund, URL, User-Agent, Land und Referer. Ohne Logging bleiben Schutzregeln aktiv, Dashboard-Historie und E-Mail-Schwellwert erhalten aber keine neuen Treffer.

Log-Aufbewahrung (Tage)

7

Alter, ab dem die automatische SQLite-Bereinigung Aktivitäten löscht; mindestens ein Tag. Die manuelle Dashboard-Aktion verwendet ihren eigenen dort gewählten Wert.

Temporäre Daten automatisch bereinigen

Ein

Entfernt in Abständen abgelaufene Rate-, Subnetz-, Sperr-, Challenge-, Verhaltens- und Cachezustände sowie alte Logs.

Cleanup-Intervall (Sekunden)

600

Mindestabstand zwischen zwei durch Storefront-Aufrufe ausgelösten Bereinigungsläufen; mindestens 60 Sekunden.

Cleanup-Batchgröße

10000

Begrenzt die Zahl der je Lauf bearbeiteten Datensätze beziehungsweise Dateien. Sehr kleine oder sehr große Werte werden intern begrenzt.

Maximale Speichergröße (MB)

200

Löscht bei Überschreitung zuerst abgelaufene Zustände und danach die ältesten Aktivitäten beziehungsweise Fallback-Dateien. 0 schaltet diese Größenbegrenzung aus; positive Werte unter 10 gelten als 10 MB.

Benachrichtigungs-E-Mail

Leer

Empfänger einer einfachen Angriffswarnung. Nur eine syntaktisch gültige Adresse wird verwendet.

Benachrichtigungs-Schwellwert

1000

Zahl protokollierter Treffer seit Tagesbeginn, ab der höchstens einmal pro Kalendertag eine Mail versendet wird. Passive Treffer zählen mit.

Achtung

Protokolle enthalten IP-Adressen, URLs, User-Agents und Referer. Legen Sie Aufbewahrungsdauer, Zugriffsrechte, Datenschutzhinweise und Löschprozess passend zu Ihrem Betrieb fest. Das Modul trifft keine rechtliche Bewertung und garantiert keine datenschutzrechtliche Zulässigkeit.

Dashboard bedienen

Öffnen Sie eComStyle.de ‣ BotProtection.

Statusmeldungen

Oben sehen Sie, ob der moduleigene SQLite-Speicher aktiv ist. Bei aktivem SQLite zeigt das Dashboard den Datenbankpfad; der technische Dienstleister kann ihn für Sicherung und Diagnose verwenden. Eine rote Meldung zum Datei-Fallback sollte an die Agentur weitergegeben werden.

Ein orangefarbener Hinweis kennzeichnet den passiven Modus. In diesem Modus sind die Zahlen simulierte Sperrtreffer, keine tatsächlich abgewiesenen Requests.

Statistiken verstehen

Die drei Kennzahlen umfassen heute, die letzten sieben Tage einschließlich heute und die letzten 30 Tage einschließlich heute. Die Tabellen für Gründe, Top-IP-Adressen, URLs und Herkunftsländer zeigen aus Performancegründen nur den heutigen Tag.

Das Dashboard zeigt ausschließlich gespeicherte Erkennungstreffer, kein vollständiges Webserver-Zugriffsprotokoll. Freigegebene, angemeldete oder unauffällige Requests erscheinen nicht; einzelne Browserprüfungen müssen nicht als eigener Aktivitätseintrag vorliegen.

Unter Aktueller Status sehen Sie aktive IP-Rate-Zähler, temporär blockierte IPs, Verhaltensprofile und Force-SID-Zähler. Diese Laufzeitwerte sind keine historische Angriffszahl und verschwinden nach Ablauf oder Bereinigung.

IP entsperren

Wählen Sie in der Tabelle Top 20 blockierte IP-Adressen die Schaltfläche IP entsperren. Entfernt wird ausschließlich eine aktuelle temporäre Sperre dieser IP. Blacklist, Länderregel und bereits protokollierte Aktivitäten bleiben unverändert.

Die Top-Liste enthält alle heutigen Treffer, nicht nur aktive temporäre Sperren. Deshalb ist „Keine Sperre gefunden“ ein mögliches und korrektes Ergebnis.

GeoIP-Datenbank aktualisieren

Der Abschnitt Lokale GeoIP-Datenbank zeigt Datenstand, Quelle und Anzahl der IPv4-/IPv6-Bereiche. Wählen Sie GeoIP-Datenbank jetzt aktualisieren, um einen neuen geprüften Satz zu laden. Die Schaltfläche bleibt deaktiviert, wenn PHP-cURL fehlt oder das Laufzeitverzeichnis nicht beschreibbar ist.

Das Update wird nur durch diese Aktion oder ein Modulpaket aktualisiert; es läuft nicht automatisch im Storefront-Request. Bei einer Fehlermeldung bleibt die bisherige gültige beziehungsweise die mitgelieferte Datenbank verfügbar.

Daten aufräumen

Geben Sie im Abschnitt Daten aufräumen ein Alter zwischen 1 und 365 Tagen ein und wählen Sie Jetzt aufräumen. Alte Aktivitätsprotokolle und bereits abgelaufene Laufzeitzustände werden entfernt. Aktuelle Sperren, Moduleinstellungen und GeoIP-Daten bleiben erhalten.

Für einen vollständigen Reset sämtlicher BotProtection-Daten ist die Agentur zuständig; dieser Vorgang ist bewusst nicht als Dashboard-Schaltfläche angeboten.

E-Mail-Benachrichtigung

Bei aktivem Logging, gültiger Empfängeradresse und positivem Schwellwert prüft das Modul nach jedem protokollierten Treffer die Tageszahl. Beim erstmaligen Erreichen des Werts sendet es eine Textmail mit Anzahl, Shop-URL und Zeitpunkt. Weitere Treffer desselben Tages lösen keine zweite Mail aus.

Die Nachricht ist ein Alarm, keine Eingangsbestätigung oder automatische Sicherheitsanalyse. Sie enthält keine vollständige Liste betroffener IPs und setzt weder eine Firewall-Regel noch eine Supportmeldung ab. Prüfen Sie bei ausbleibenden Mails zuerst Logging, Tageszahl und die vom Hoster bereitgestellte Mailfunktion.

Empfohlene Grundeinstellung

Für einen normalen Live-Start:

  • passiv beginnen, danach moderat aktivieren,

  • IP-Limit 20 in 60 Sekunden und Subnetz-Limit 120 in 60 Sekunden nur anhand echter Zugriffsmuster anpassen,

  • Force-SID zunächst mit Schwellwertstrategie testen, falls Shop oder Integrationen noch force_sid verwenden,

  • JavaScript-Challenge eingeschaltet lassen und wiederholte Prüfungen beobachten,

  • Länderregeln nur bei einem klaren Geschäftsgrund einsetzen,

  • User-Agent- und IP-Whitelist klein halten,

  • Logging mit sieben Tagen Aufbewahrung, automatischer Bereinigung und 200-MB-Grenze beginnen,

  • Dashboard regelmäßig sowie nach Shop-, Theme-, Proxy- oder Schnittstellenänderungen prüfen.

Nicht automatisierte Aufgaben und Grenzen

BotProtection erledigt insbesondere nicht automatisch:

  • Netzwerk- oder volumetrischen DDoS-Schutz vor Webserver und PHP,

  • Einrichtung von Firewall, CDN, WAF, Reverse Proxy oder vertrauenswürdigen Client-IP-Headern,

  • robots.txt-Regeln, Suchmaschinenregistrierung oder SEO-Bewertung,

  • sicheren Nachweis jeder Bot-Identität; User-Agents können gefälscht werden,

  • Erkennung fachlich betrügerischer Bestellungen oder Zahlungsbetrug,

  • rechtliche Prüfung von Länderblockaden, Protokollierung oder Aufbewahrungsfristen,

  • automatische GeoIP-Aktualisierung im Hintergrund,

  • automatische Auswertung und Bearbeitung eines E-Mail-Alarms,

  • vollständiges Löschen aller Laufzeitdaten oder Zurücksetzen der Moduleinstellungen.

Prüfung vor dem Live-Betrieb

Prüfen Sie mit der Agentur:

  • Startseite, Suche, Kategorien, Detailseiten und statische Ressourcen,

  • Warenkorb und Checkout als Gast sowie als angemeldeter Kunde,

  • alle Zahlungsweiterleitungen und Webhooks,

  • Monitoring, Preisportale, Warenwirtschaft, Feeds und sonstige Clients,

  • Suchmaschinenzugriff und bewusst gesetzte Ausnahmen,

  • Challenge mit und ohne JavaScript beziehungsweise Cookies,

  • eine kontrollierte Fehlblockierung und die Freigabe im Dashboard,

  • passive Dashboard-Gründe über einen repräsentativen Zeitraum,

  • korrekte Herkunfts-IP hinter Proxy oder CDN sowie

  • Datenschutz, Löschfristen und Zuständigkeit für Alarme.

Häufige Fehler

Echte Kunden erhalten „Access Denied“

Stellen Sie sofort auf passiv, ohne das Modul zu deaktivieren. Suchen Sie im Dashboard nach Zeitpunkt, IP, URL und Grund. Prüfen Sie besonders zu niedrige IP-/Subnetzgrenzen, Force-SID, Länderregeln und fehlende Browser-Header. Setzen Sie eine Freigabe erst, wenn die betroffene IP oder Kennung zuverlässig identifiziert ist.

Sicherheitsüberprüfung erscheint immer wieder

Der Browser kann das Challenge-Cookie möglicherweise nicht setzen, JavaScript ist blockiert, IP oder User-Agent wechseln oder die Serverzeit stimmt nicht. Testen Sie ohne Browsererweiterungen und lassen Sie Proxy- sowie Cookie-Setup von der Agentur prüfen.

Zu viele Besucher teilen dieselbe IP

Das ist häufig ein Proxy-/CDN-Problem oder ein gemeinsamer Unternehmens- oder Mobilfunkzugang. Geben Sie nicht vorschnell die gemeinsame Adresse frei. Lassen Sie zuerst prüfen, ob OXID die echte Besucher-IP erhält, und passen Sie danach IP- und Subnetz-Limit anhand realer Daten an.

Suchmaschine wird blockiert

Prüfen Sie Schreibweise der User-Agent-Whitelist, Verifikationsmodus, DNS-Erreichbarkeit und Force-SID-Sonderregel. Beachten Sie, dass das großzügige Freigeben allgemeiner Begriffe auch nachgeahmte Clients passieren lässt.

Land ist unbekannt oder offensichtlich falsch

Prüfen Sie den im Dashboard angezeigten GeoIP-Datenstand und starten Sie bei Bedarf ein Update. ? bedeutet „nicht ermittelt“ und wird durch DACH- oder strikte Whitelist allein nicht blockiert. IP-Länderdaten sind Näherungswerte und können bei VPN, Mobilfunk oder neuen Netzen abweichen.

Dashboard zeigt „SQLite-Speicher nicht aktiv“

Das Modul arbeitet mit dem Datei-Fallback weiter. Melden Sie Warnung und Fehlertext an die Agentur; pdo_sqlite muss in der Webserver-PHP-Version aktiviert und das Logverzeichnis beschreibbar sein.

Dashboard ist leer

Prüfen Sie Bot-Protection aktivieren und Logging aktivieren. Angemeldete Personen und Admin-Aufrufe werden nicht protokolliert. Die Detailtabellen zeigen nur den heutigen Tag; ältere Aktivitäten können bereits durch Aufbewahrung oder Größenbegrenzung gelöscht worden sein.

E-Mail-Alarm kommt nicht an

Prüfen Sie gültige Empfängeradresse, positiven Schwellwert, aktives Logging und ob der Wert heute tatsächlich erreicht wurde. Pro Tag wird höchstens eine Mail versendet. Wenn alles stimmt, muss die Agentur beziehungsweise der Hoster die PHP-Mailfunktion und Zustellung prüfen.