ALTCHA: Konfiguration
ALTCHA Spam-Schutz für Sylius - Einstellungen pro Channel, Admin-Grids für eigene Formulare, Wegwerf-Mail-Ausnahmen und Gibberish-Log sowie Praxis-Beispiele
ALTCHA: Konfiguration
Live Demo: Teste dieses und weitere Plugins live — ohne Installation, ohne Risiko: demo.markus-michalski.net
Einstellungen pro Channel
Admin-Sidebar -> MMKreativ Plugins -> ALTCHA Spam-Schutz. Für jeden Channel gibt es einen eigenen Eintrag; einen globalen Schalter gibt es nicht.
| Einstellung | Bedeutung |
|---|---|
| ALTCHA für diesen Channel aktivieren | Schaltet ALTCHA für den Channel ein. Ein Channel ohne Eintrag ist ungeschützt, und sein Challenge-Endpunkt antwortet mit 404. |
| Geschützte Formulare | Jedes angehakte Formular verlangt eine gelöste Proof-of-Work-Aufgabe. Ausnahme ist der Login im Checkout, der nur ein Rate-Limit bekommt. Zeigt das Template eines angehakten Formulars das Widget nicht an, wird jede Absendung abgelehnt (siehe Storefront-Integration). |
| Proof-of-Work-Aufwand und Proof-of-Work-Versuche | Bestimmen die Schwierigkeit: Höher ist schwerer für Bots und langsamer für Menschen. Der Aufwand ist auf 100.000 begrenzt, weil der Server ihn pro Challenge einmal selbst aufbringen muss. Aufwand × Versuche ist auf 100 Millionen begrenzt; darüber würde kein Browser die Aufgabe in vertretbarer Zeit lösen. |
| Gültigkeit einer Aufgabe | Wie lange eine ausgegebene Challenge gültig bleibt. |
| Rate-Limit (Versuche pro Client und Zeitfenster) | Wie oft ein Client dasselbe Formular innerhalb des Zeitfensters absenden darf. |
| Challenge-Endpoint - Aufrufe pro Client und Minute | Schützt den öffentlichen Challenge-Endpunkt, bei dem jeder Aufruf den Server eine Schlüsselableitung kostet (Standard 30, erlaubt 1 bis 1000). Ein Besucher lädt pro Minute eine Handvoll Widgets, der Standard ist daher großzügig. Erhöhen bei vielen Kunden hinter einer Adresse, senken für strengeren Schutz. |
| Verstecktes Honeypot-Feld und Mindestzeit zum Ausfüllen | Zusätzliche Schutzschichten, die nur unterstützen: Die Ausfüllzeit wird nur geprüft, wenn der Browser einen gültigen signierten Zeitstempel mitschickt. Ein Bot, der das Feld weglässt, umgeht diese Schicht, aber nie die Proof-of-Work-Prüfung. |
| E-Mail-Adressen von Wegwerf-Anbietern ablehnen | Standardmäßig aus, Details unter Inhaltsprüfungen, ein Beispiel unter Praxis-Beispiele. |
| Sinnlosen Freitext ablehnen | Standardmäßig aus. Abgelehnt wird ab Score 85, protokolliert ab Score 60; Details unter Inhaltsprüfungen, ein Beispiel unter Praxis-Beispiele. |
| Neues Secret erzeugen | Erneuert das HMAC-Secret des Channels. Es wird beim ersten Speichern erzeugt und danach nie wieder angezeigt. |
Ändert sich
APP_SECRET, wird jedes geschützte Formular abgelehnt, auch der Login, bis du in jedem Channel "Neues Secret erzeugen" anhakst und speicherst. Das ist Absicht: Bei einem Secret-Konflikt verweigert das Plugin lieber alles, als unprüfbare Lösungen zu akzeptieren (Fail-Closed). Alle Anwendungsserver müssen denselbenAPP_SECRETverwenden.
Die Schutzziele, für die dieses Plugin selbst ein Widget ausgibt (Registrierung, Kontakt, Login, "Passwort vergessen"), sowie der Login im Checkout (der keines braucht) sind von Anfang an angehakt. Die Schutzziele der Schwester-Plugins und eigene Formulare sind zunächst nicht angehakt. Würden sie erzwungen, bevor ihr Template das Widget ausgibt, würde jede Absendung abgelehnt.
Admin-Grids
| Grid | Erreichbar über | Zweck |
|---|---|---|
| ALTCHA Spam-Schutz (Channel-Einstellungen) | Eintrag in der Sidebar | Eine Zeile pro Channel; die obigen Einstellungen anlegen, bearbeiten und löschen |
| ALTCHA eigene Formulare | Button auf der Seite der Channel-Einstellungen | Ein Formular aus einem fremden Plugin oder aus eigenem Code als zusätzliches Schutzziel eintragen (Code mit Präfix custom_) |
| ALTCHA Wegwerf-Mail-Ausnahmen | Button auf der Seite der Channel-Einstellungen | Eigene Einträge zum Erlauben oder Ablehnen zusätzlich zur mitgelieferten Wegwerf-Domain-Liste |
| ALTCHA geblockte Domains | Button auf der Seite der Wegwerf-Mail-Ausnahmen | Schreibgeschützte, durchsuchbare Liste aller Domains, die gerade geblockt werden (mitgelieferte Liste plus eigene Einträge zum Ablehnen) |
| ALTCHA Gibberish-Log | Button auf der Seite der Channel-Einstellungen | Schreibgeschütztes Protokoll auffälliger Absendungen: Zeitpunkt, Formular, Ergebnis, Score und Gründe, nie der eingegebene Text |
Die Grids für Channel-Einstellungen und eigene Formulare bieten vollständiges CRUD (ResourceBundle). Die Liste der geblockten Domains und das Gibberish-Log sind reine Leselisten.
Praxis-Beispiele
1. Nur Kontakt- und Registrierungsformular eines Channels schützen, den Login im Checkout ungeschützt lassen. Channel aktivieren, Kontaktformular und Registrierung angehakt lassen, alle übrigen eingebauten Schutzziele abhaken, darunter den Login im Checkout: Er ist standardmäßig angehakt und muss für diesen Zweck ausdrücklich abgehakt werden. Den Proof-of-Work-Aufwand auf dem Standardwert lassen. Ein Widget musst du nicht selbst platzieren, beides sind eingebaute Schutzziele.
2. Die Gibberish-Prüfung auf einem Channel mit Kontaktformular-Spam gefahrlos einführen. "Sinnlosen Freitext ablehnen" anhaken, den Wert bei "Gibberish - ablehnen ab Score" aber zunächst auf 100 setzen, damit vorerst so gut wie nichts abgelehnt wird (100 ist der höchste einstellbare Wert und erreicht nur in Extremfällen, etwa bei sehr langem Tastaturgeklapper). Eine Woche lang das ALTCHA Gibberish-Log beobachten. Erst wenn die protokollierten Einträge eindeutig Spam sind, den Ablehn-Score schrittweise in Richtung Standardwert 85 senken.
3. Ein eigenes Formular für Bestellnotizen als Schutzziel hinzufügen. Admin -> ALTCHA Spam-Schutz -> ALTCHA eigene Formulare -> Formular-Klasse und einen Code eintragen, zum Beispiel custom_checkout_note. Danach einmalig {{ mmd_altcha_widget('custom_checkout_note') }} in das Template dieses Formulars setzen (siehe Storefront-Integration) und das Schutzziel in den Channel-Einstellungen anhaken.
4. Eine fälschlich geblockte Relay-Adresse von der Wegwerf-E-Mail-Prüfung ausnehmen. Admin -> ALTCHA Spam-Schutz -> ALTCHA Wegwerf-Mail-Ausnahmen -> einen Eintrag mit dem Modus Erlauben für die Domain anlegen (zum Beispiel die Relay-Domain von SimpleLogin oder "Hide My Email"). Ein Eintrag mit Erlauben gewinnt immer, auch gegenüber einer abgelehnten übergeordneten Domain.