Markus Michalski FAQ

ALTCHA: Konfiguration

ALTCHA Spam-Schutz für Shopware 6.7 - alle Einstellungen mit Standardwerten, Gibberish-Erkennung, Wegwerf-E-Mail-Prüfung mit Domain-Ansicht, Rate Limiting und Praxisbeispiele

English Version

Zurück zur Übersicht

ALTCHA Spam-Schutz: Konfiguration

Diese Dokumentation bezieht sich immer auf die aktuellste veröffentlichte Version.

Live Demo: Teste dieses und weitere Plugins live — ohne Installation, ohne Risiko: demo.markus-michalski.net

Die Einstellungen findest du im Shopware Admin unter Erweiterungen > Meine Erweiterungen > ALTCHA Spam-Schutz. Jede Einstellung kannst du pro Verkaufskanal überschreiben. Die folgenden Abschnitte tragen die Titel der Karten, wie sie im Admin erscheinen.

ALTCHA Spam-Schutz

Einstellung Standard Beschreibung
Spam-Schutz aktivieren an Hauptschalter für alle Schutzfunktionen. Ist er aus, laufen weder Prüfungen noch Widget-Ausgabe
Newsletter-Formular schützen an Schutz für Newsletter-Anmeldeformulare
Registrierungsformular schützen an Schutz für die Kundenregistrierung, verhindert Fake-Konten

Für das Kontaktformular gibt es keinen eigenen Schalter: Es ist geschützt, sobald der Hauptschalter an ist.

ALTCHA Challenge

Einstellung Standard Beschreibung
ALTCHA-Widget aktivieren an Zeigt die "Ich bin kein Roboter"-Checkbox, die sich automatisch verifiziert. Ist die Einstellung aus, entfällt die ALTCHA-Prüfung, die übrigen Schichten bleiben aktiv
Challenge-Kosten (PBKDF2-Iterationen) 2000 Rechenaufwand pro Versuch im Browser, mindestens 1. Höher heißt schwerer und langsamer, für Bots wie für Besucher
Challenge-Schwierigkeit (max. Zähler) 2000 Obergrenze der Suche, mindestens 2. Jede Challenge braucht zwischen der Hälfte und der vollen Anzahl an Versuchen
Challenge-Gültigkeit (Sekunden) 300 Wie lange eine Challenge gültig ist, zwischen 30 und 3600

Zur Sicherheit begrenzt das Plugin die Kosten intern auf höchstens 100000 und den Zähler auf höchstens 1000000. Ein Wert von 0 oder ein leeres Feld fällt auf den Standard zurück.

Honeypot

Einstellung Standard Beschreibung
Honeypot-Feld aktivieren an Fügt ein unsichtbares Feld hinzu, das Bots verrät. Echte Besucher bemerken es nicht

Das Feld heißt fax_number, wird mit position:absolute; left:-9999px aus dem sichtbaren Bereich geschoben (nicht per display:none, das manche Bots überspringen) und trägt tabindex="-1" und autocomplete="off". Eine Absendung mit nicht leerem Feld wird abgelehnt. Ein Wert, der nur aus Leerzeichen besteht, gilt als leer und wird akzeptiert.

Mindest-Ausfüllzeit

Einstellung Standard Beschreibung
Mindest-Ausfüllzeit (Sekunden) 3 Absendungen, die schneller nach dem Anzeigen des Formulars eintreffen, gelten als Bot. 0 schaltet die Prüfung ab

Das Formular trägt dafür einen signierten Render-Zeitstempel. Fehlt der Token oder ist er nicht echt, überspringt der Shop nur diese Schicht, die ALTCHA-Prüfung bleibt davon unberührt. Auf nicht zwischengespeicherten Seiten (zum Beispiel der Registrierung) greift die Prüfung zuverlässig. Auf HTTP-zwischengespeicherten CMS-Seiten (Kontakt, Newsletter) kann ein Bot, der die gecachte Seite abgreift, einen alten Token mitschicken und diese Schicht passieren, die übrigen Schichten greifen weiterhin.

Gibberish-Erkennung

Einstellung Standard Beschreibung
Gibberish-Erkennung aktivieren aus Bewertet Name-, Betreff-, Nachrichten- und Adressfelder von 0 (normaler Text) bis 100 (Tastaturgeklapper)
Verdachtsschwelle (nur protokollieren) 60 Werte ab hier landen im Shopware-Log, werden aber nicht blockiert
Ablehnungsschwelle 85 Werte ab hier werden abgelehnt, erlaubt sind 1 bis 101. 101 heißt nur beobachten: Nichts wird abgelehnt, auffällige Werte werden weiter protokolliert

Bewertet werden die Felder firstName, lastName, subject und comment sowie billingAddress.street und billingAddress.city, jeweils aus dem Formular, das sie mitschickt. Vor- und Nachname werden also bei Registrierung, Kontakt und Newsletter geprüft, Betreff und Nachricht beim Kontaktformular, Straße und Ort bei der Registrierung. Das schlechteste Feld entscheidet. Die Einträge im Log beginnen mit "ALTCHA gibberish check" und enthalten Aktion, Verkaufskanal, Score und Gründe, nie den Text selbst.

Empfehlung für die Einführung: Setze die Ablehnungsschwelle zunächst auf 101, sichte einige Tage die Log-Einträge und senke den Wert erst danach.

Wie der Score entsteht, steht unter Technische Details.

Wegwerf-E-Mail-Adressen

Einstellung Standard Beschreibung
Wegwerf-E-Mail-Adressen ablehnen aus Lehnt Adressen bekannter Wegwerf-Postfach-Anbieter direkt ab
Zusätzlich blockierte Domains leer Eine Domain pro Zeile, Subdomains sind eingeschlossen. Zeilen mit # werden ignoriert. Wirkt auch bei der veralteten Inhaltsvalidierung
Immer erlaubte Domains leer Eine Domain pro Zeile. Hat Vorrang vor Liste und Sperrliste, Subdomains eingeschlossen, zum Beispiel für Datenschutz-Relay-Dienste deiner Kunden

Mehrere App-Knoten: Der Task aktualisiert die Liste nur auf dem Knoten, der ihn ausführt. Bei mehreren App-Knoten oder einem Read-Only-Container-Image führst du den Befehl auf jedem Knoten aus oder baust das Image neu, sonst nutzen die übrigen Knoten den mitgelieferten Snapshot.

Inhaltsvalidierung (veraltet)

Einstellung Standard Beschreibung
Inhaltsvalidierung aktivieren an Prüft Vorname, Nachname, Straße, Ort und E-Mail-Adresse auf Gibberish und Wegwerf-Domain. Blockiert erst bei zwei oder mehr auffälligen Feldern

Diese ältere, gröbere Prüfung ist zugunsten von Gibberish-Erkennung und Wegwerf-E-Mail-Prüfung veraltet. Sie wird übersprungen, sobald eine der beiden aktiv ist, und entfällt in einer künftigen Major-Version. Ohne diese beiden Optionen läuft sie mit den Standardwerten weiter.

Formular Rate Limiting

Einstellung Standard Beschreibung
IP-basiertes Rate Limiting aktivieren an Begrenzt Formular-Absendungen pro IP-Adresse
Max. Anfragen 3 Maximale Anzahl pro Zeitfenster
Zeitfenster (Minuten) 60 Länge des gleitenden Zeitfensters

Das Limit gilt getrennt pro Formular (Kontakt, Newsletter, Registrierung) und pro IP-Adresse. Gezählt werden nur Absendungen, die alle vorherigen Prüfungen bestanden haben: Eine abgelehnte Absendung verbraucht kein Kontingent.

Hinter einem Reverse Proxy oder CDN sieht der Shop nur dann die echte Besucher-IP, wenn die vertrauenswürdigen Proxys in Symfony konfiguriert sind. Andernfalls teilen sich alle Besucher dieselbe Adresse und damit dasselbe Limit.

Challenge-Endpoint DoS-Schutz

Einstellung Standard Beschreibung
Challenge Rate Limiting aktivieren an Begrenzt Anfragen an /altcha/challenge pro IP
Max. Challenges pro IP 30 Maximale Anzahl pro Zeitfenster
Zeitfenster (Minuten) 60 Zeitfenster für das Challenge-Limit

Das Limit liegt bewusst höher als beim Formular, weil eine Seite mehrere Formulare mit je einer Challenge laden kann.

Praxisbeispiele

Strenger Schutz für einen öffentlichen Shop mit viel Spam

Spam-Schutz aktivieren: an
ALTCHA-Widget aktivieren: an
Challenge-Kosten: 4000
Gibberish-Erkennung aktivieren: an
Ablehnungsschwelle: 75
Wegwerf-E-Mail-Adressen ablehnen: an
Max. Anfragen: 2

B2B-Shop mit wenigen, aber echten Kontaktanfragen

Mindest-Ausfüllzeit: 5
Gibberish-Erkennung aktivieren: an
Ablehnungsschwelle: 101 (nur beobachten, erst nach Log-Sichtung senken)
Wegwerf-E-Mail-Adressen ablehnen: aus

Internationaler Shop mit vielen nicht-deutschen Namen

Gibberish-Erkennung aktivieren: an
Verdachtsschwelle: 70
Ablehnungsschwelle: 90

Die Trigramm-Tabelle der Gibberish-Erkennung deckt Deutsch, Englisch, Französisch, Spanisch, Italienisch und Niederländisch ab, deshalb setzt du die Schwellen bei vielen anderen Sprachen höher an.