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
Öffnen Sie .
Lassen Sie Bot-Protection aktivieren eingeschaltet und wählen Sie zunächst Passiv (Nur Logging).
Prüfen Sie IP-, User-Agent- und Länderlisten. Lassen Sie unbekannte Werte nicht vorsorglich frei.
Speichern Sie und beobachten Sie unter mindestens einen typischen Geschäftszeitraum.
Testen Sie Gast-Checkout, Anmeldung, Zahlungsarten, Monitoring, Suchmaschinen und externe Schnittstellen.
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:
Force-SID wird vor normalen IP- und User-Agent-Whitelists ausgewertet.
IP- und User-Agent-Whitelist geben den Request für alle nachfolgenden Prüfungen frei.
Strikte Länderregel und Länder-Whitelists werden geprüft; ein freigegebenes Land überspringt auch spätere Blacklists und Erkennungen.
DACH-Regel, IP-/Länder-Blacklist und eine bestehende temporäre Sperre werden ausgewertet.
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
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
Einstellung |
Standard |
Wirkung |
|---|---|---|
Max. Requests pro Zeitfenster |
|
Erlaubte Requests einer anonymen IP im Zeitfenster. Erst der nächste Request oberhalb des Werts gilt als Treffer. |
Zeitfenster (Sekunden) |
|
Zeitraum für den IP-Zähler. Nach Ablauf beginnt der Zähler mit dem nächsten Request neu. |
Max. Requests pro Subnetz-Zeitfenster |
|
Gemeinsames Limit eines IPv4-/24- oder IPv6-/64-Netzes. |
Subnetz-Zeitfenster (Sekunden) |
|
Zeitraum des gemeinsamen Subnetzzählers; Werte unter 30 Sekunden werden wie 30 Sekunden behandelt. |
Block-Dauer (Sekunden) |
|
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
Einstellung |
Standard |
Wirkung |
|---|---|---|
Force-SID Bots blockieren (Cookie-less) |
Ein |
Erkennt |
Force-SID Strategie |
Sofort blockieren |
|
Force-SID Schwellwert (Anzahl Treffer) |
|
Anzahl für die Strategie „Schwellwert“. Werte unter 1 werden wie 1 behandelt. |
Force-SID Zeitfenster (Sekunden) |
|
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 |
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
|
Honeypot aktivieren |
Ein |
Jeder GET- oder POST-Parameter |
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.
Einstellung |
Standard |
Wirkung |
|---|---|---|
IP-Whitelist (z.B. 192.168.) |
Leer |
Gibt IPs über einen Präfixvergleich frei. |
User-Agent Whitelist |
|
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 |
|
Searchbot Cache TTL (Sekunden) |
|
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 |
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; |
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
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) |
|
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) |
|
Mindestabstand zwischen zwei durch Storefront-Aufrufe ausgelösten Bereinigungsläufen; mindestens 60 Sekunden. |
Cleanup-Batchgröße |
|
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) |
|
Löscht bei Überschreitung zuerst abgelaufene Zustände und danach die
ältesten Aktivitäten beziehungsweise Fallback-Dateien. |
Benachrichtigungs-E-Mail |
Leer |
Empfänger einer einfachen Angriffswarnung. Nur eine syntaktisch gültige Adresse wird verwendet. |
Benachrichtigungs-Schwellwert |
|
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 .
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
20in 60 Sekunden und Subnetz-Limit120in 60 Sekunden nur anhand echter Zugriffsmuster anpassen,Force-SID zunächst mit Schwellwertstrategie testen, falls Shop oder Integrationen noch
force_sidverwenden,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.