ALTCHA: Fehlerbehebung
ALTCHA Spam-Schutz für Shopware 6.7 - typische Probleme mit Symptom, Prüfung und Lösung, bekannte Einschränkungen und häufige Fragen zu Datenschutz, Konfiguration und Kompatibilität
ALTCHA Spam-Schutz: Fehlerbehebung
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
Häufige Probleme
Widget wird nicht angezeigt
- Symptom: Die "Ich bin kein Roboter"-Checkbox erscheint nicht im Formular.
- Prüfung: Sind Spam-Schutz aktivieren und ALTCHA-Widget aktivieren an? Bei Newsletter und Registrierung auch der jeweilige Formular-Schalter? Hat ein eigenes Theme den Captcha-Block ohne
{{ parent() }}überschrieben (siehe Storefront-Integration)? Zeigt die Browser-Konsole JavaScript-Fehler? - Lösung: Einstellungen korrigieren,
bin/console cache:clearausführen, im Theme-Overrideparent()ergänzen. Nach einem Update zusätzlich HTTP-Cache, Varnish und CDN leeren, siehe Installation.
Formular wird mit der allgemeinen Fehlerseite abgelehnt
- Symptom: Beim Absenden erscheint Shopwares allgemeine Fehlerseite statt eines Hinweises am Formular.
- Prüfung: Das ist für die meisten Ablehnungsgründe erwartetes Verhalten. Sie bleiben absichtlich vage, damit ein Bot nicht erfährt, welche Schicht ihn gestoppt hat. Den Grund (
reason) zeigt das Shopware-Log, siehe Technische Details. - Lösung: Nur eine blockierte Wegwerf-E-Mail-Adresse zeigt eine konkrete Meldung am E-Mail-Feld. Bei jedem anderen Grund prüfst du das Log und justierst die betroffene Schicht in der Konfiguration nach.
Echte Besucher werden blockiert
- Symptom: Legitime Besucher können das Formular nicht absenden.
- Prüfung: Im Log den
reasonder Ablehnung nachsehen. - Lösung: Je nach Grund:
gibberish: Ablehnungsschwelle erhöhen oder vorübergehend auf101setzen (nur beobachten)disposable_email: Domain unter "Immer erlaubte Domains" eintragentoo_fast: Mindest-Ausfüllzeit senken oder auf0setzenrate_limited: Max. Anfragen erhöhen oder Zeitfenster vergrößerncontent_validation_failed: veraltete Inhaltsvalidierung abschalten oder Gibberish-Erkennung beziehungsweise Wegwerf-E-Mail-Prüfung einschalten, die sie ersetztaltcha_failedoderaltcha_missing: siehe die nächsten Abschnitte
Alle Besucher laufen ins Rate Limit
- Symptom: Schon die ersten Absendungen verschiedener Besucher werden mit
rate_limitedabgelehnt, oder der Challenge-Endpunkt antwortet früh mit 429. - Prüfung: Steht der Shop hinter einem Reverse Proxy oder CDN? Dann sieht er unter Umständen nur die Adresse des Proxys, und alle Besucher teilen sich ein Limit.
- Lösung: Die vertrauenswürdigen Proxys in Symfony konfigurieren, damit die echte Besucher-IP ankommt. Als Übergang kannst du das Limit anheben.
Die ALTCHA-Prüfung schlägt fehl
- Symptom: Die Absendung wird mit
altcha_failedabgelehnt. - Prüfung: Ist die Challenge abgelaufen (Standard 5 Minuten)? Wurde die Seite sehr lange offen gelassen? Wurde dieselbe Lösung zweimal gesendet (Replay-Schutz)? Hat sich
APP_SECRETgeändert, während Seiten offen waren? - Lösung: Seite neu laden und das Formular erneut absenden. Bei häufigem Auftreten die Challenge-Gültigkeit erhöhen.
Das Widget fehlt, die Absendung wird mit altcha_missing abgelehnt
- Symptom: Im Log steht
altcha_missing. - Prüfung: Das Formular wurde ohne Widget abgeschickt: Theme-Override ohne
parent(), gecachte Seite aus der Zeit vor einem Update, JavaScript im Browser blockiert. - Lösung: Override und Caches prüfen, siehe oben.
Challenge-Endpunkt antwortet mit HTTP 500 oder Formularseiten zeigen einen Fehler
- Symptom:
/altcha/challengeliefert 500, oder Seiten mit Formular lassen sich nicht rendern. - Prüfung: Ist die Umgebungsvariable
APP_SECRETgesetzt und nicht leer? - Lösung:
APP_SECRETsetzen, Cache leeren.
Rate-Limit-Tabelle wächst unkontrolliert
- Symptom:
mmd_altcha_rate_limit_logwird immer größer. - Prüfung: Läuft der Message Worker?
bin/console messenger:consume scheduled_task - Lösung: Worker starten oder manuell aufräumen:
bin/console scheduled-task:run mmd_altcha.rate_limit_cleanup
Wegwerf-E-Mail-Liste aktualisiert sich nicht
- Symptom: Neue Wegwerf-Domains aus der Upstream-Liste fehlen.
- Prüfung: Ist Wegwerf-E-Mail-Adressen ablehnen nur für einen einzelnen Verkaufskanal aktiv statt global? Der wöchentliche Task läuft nur bei globaler Aktivierung. Kann der Server
raw.githubusercontent.comerreichen? - Lösung:
bin/console mmd:altcha:update-disposable-domainsausführen, bei mehreren App-Knoten auf jedem einzeln.
Die Ansicht "Blockierte Domains" bleibt leer oder lädt nicht
- Symptom: Die durchsuchbare Liste unter "Wegwerf-E-Mail-Adressen" zeigt nichts oder eine Fehlermeldung.
- Prüfung: Hat der angemeldete Admin-Benutzer die Berechtigung, die Systemkonfiguration zu lesen?
- Lösung: Berechtigung in der Benutzerrolle ergänzen.
Plugin lädt nach der Composer-Installation nicht
bin/console plugin:refresh
bin/console plugin:deactivate MmdAltchaIntegration
bin/console cache:clear
bin/console plugin:activate MmdAltchaIntegration
bin/console cache:clear
Bekannte Einschränkungen
- Die Mindest-Ausfüllzeit greift auf HTTP-zwischengespeicherten CMS-Seiten (Kontakt, Newsletter) nicht zuverlässig: Ein Bot, der eine gecachte Seite abgreift, kann einen alten, aber gültigen Token mitschicken. Honeypot, ALTCHA und Rate Limit greifen trotzdem.
- Die Trigramm-Tabelle der Gibberish-Erkennung deckt Deutsch, Englisch, Französisch, Spanisch, Italienisch und Niederländisch ab. Text in anderen Sprachen, etwa Polnisch oder Ungarisch, kann hoch scoren, ebenso Lacher wie "hahahaha". Groß geschriebene Namen und kurze Wörter lösen allein nur selten eine Ablehnung aus, ein langes, klein geschriebenes Wort aus unmöglichen Buchstabenfolgen dagegen schon.
- Die Wegwerf-E-Mail-Liste ist ein Snapshot und erfasst nie jede Wegwerf-Domain. Der Abgleich läuft über die Domain und ihre Elterndomains, nicht über eine Public-Suffix-Liste.
- Das Rate Limit zählt nur Absendungen, die alle vorherigen Prüfungen bestanden haben. Es ist eine Datenbankabfrage mit anschließendem Eintrag, bei vielen gleichzeitigen Anfragen derselben IP kann das Limit knapp überschritten werden.
- Ist
APP_SECRETleer, lehnt das Plugin Lösungen ab. Der Challenge-Endpunkt antwortet dann mit HTTP 500, und Seiten mit dem Token-Feld der Mindest-Ausfüllzeit laufen in einen Fehler.
FAQ
Werden Daten an Dritte gesendet?
Bei der Formularprüfung nicht. Nur die Wegwerf-Domain-Liste wird per Task oder Befehl vom Server abgerufen, ohne Besucherdaten. Siehe Datenschutz.
Setzt das Plugin Cookies?
Nein. Das Widget wird ohne die optionale Cookie-Funktion eingesetzt.
Warum hat das Kontaktformular keinen eigenen Schalter?
Das Kontaktformular ist geschützt, sobald "Spam-Schutz aktivieren" an ist. Einen zusätzlichen Schalter gibt es nicht.
Kann ich Schichten pro Verkaufskanal unterschiedlich einstellen?
Ja, jede Einstellung ist pro Verkaufskanal überschreibbar. Die Aktualisierung der Wegwerf-Liste prüft den Schalter nur global.
Mit welchen Shopware-Versionen läuft das Plugin?
Mit Shopware ~6.7.0, siehe Übersicht.