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. |
| 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, siehe Praxis-Beispiele. |
| Sinnlosen Freitext ablehnen | Standardmäßig aus. Abgelehnt wird ab Score 85, protokolliert ab Score 60; siehe 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.
| 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.
1. Nur Kontakt- und Registrierungsformular eines Channels schützen, den Login im Checkout ungeschützt lassen. Channel aktivieren, Kontaktformular und Registrierung anhaken, den Login im Checkout nicht anhaken. 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 nichts abgelehnt wird. 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.