ALTCHA Spam-Schutz: Konfiguration
Einstellungen des ALTCHA Spam-Schutz Moduls für OXID 7: Challenge, Honeypot, Rate Limiting, Challenge-Endpunkt und Inhaltsvalidierung mit den echten Admin-Bezeichnungen, Standardwerten und Prüfregeln.
ALTCHA Spam-Schutz: Konfiguration
Live Demo: Teste dieses und weitere Plugins live — ohne Installation, ohne Risiko: demo.markus-michalski.net
Die Einstellungen stehen in den Moduleinstellungen des Moduls "ALTCHA Spam-Schutz" im OXID Admin. Die Überschriften unten entsprechen den Gruppen, die der Admin in deutscher Sprache anzeigt, und die Bezeichnungen den Feldern.
Allgemeine Einstellungen
| Einstellung | Schlüssel | Standard | Wirkung |
|---|---|---|---|
| Spam-Schutz aktivieren | mmd_altcha_enabled |
An | Hauptschalter. Aus: keine Prüfung, kein Widget, der Challenge-Endpunkt antwortet mit 503 |
| Inhaltsvalidierung aktivieren | mmd_altcha_content_validation_enabled |
An | Prüft Formularinhalte auf Gibberish und Wegwerf-E-Mail-Domains (siehe unten) |
ALTCHA Proof-of-Work
| Einstellung | Schlüssel | Standard | Wirkung |
|---|---|---|---|
| ALTCHA aktivieren | mmd_altcha_pow_enabled |
An | Zeigt das Widget und verlangt eine gültige Lösung. Aus: Honeypot, Inhaltsvalidierung und Rate Limiting laufen weiter |
| Maximale Zahl (Schwierigkeit) | mmd_altcha_max_number |
50000 | Obergrenze der geheimen Zahl. Je höher, desto mehr Rechenarbeit im Browser |
| Challenge-Gültigkeit (Sekunden) | mmd_altcha_expiry_seconds |
300 | Wie lange eine Challenge gültig ist. Bestimmt auch den Wert expires_at des Eintrags in mmd_altcha_used_challenges |
| HMAC Geheimschlüssel | mmd_altcha_hmac_secret |
leer | Signiert die Challenges und schlüsselt die IP-Hashes. Bleibt das Feld leer, erzeugt das Modul beim ersten Zugriff 32 Zufallsbytes (Base64) und speichert sie |
"Maximale Zahl" und die Zeitwerte erwarten positive ganze Zahlen. Ein Text oder 0 als "Maximale Zahl" führt dazu, dass der Challenge-Endpunkt mit Status 500 antwortet.
Ändert sich der HMAC Geheimschlüssel, werden bereits ausgegebene Challenges ungültig, und alle gespeicherten IP-Hashes passen nicht mehr zu den neuen. Das Rate Limiting beginnt dann praktisch von vorn.
Honeypot
| Einstellung | Schlüssel | Standard | Wirkung |
|---|---|---|---|
| Honeypot aktivieren | mmd_altcha_honeypot_enabled |
An | Fügt ein verstecktes Feld ein. Ein ausgefülltes Feld lehnt die Absendung ab |
| Honeypot Feldname | mmd_altcha_honeypot_field |
website | Name (und ID) des versteckten Felds |
Browser-Autofill oder Passwortmanager können versteckte Felder befüllen, obwohl ein echter Besucher das Formular absendet. Tritt das bei dir auf, wähle einen Feldnamen, den Autofill nicht erkennt.
Rate Limiting
In dieser Gruppe stehen die Einstellungen für die Formulare und die für den Challenge-Endpunkt.
Formulare
| Einstellung | Schlüssel | Standard | Wirkung |
|---|---|---|---|
| Rate Limiting aktivieren | mmd_altcha_ratelimit_enabled |
An | Begrenzt Absendungen pro Client-Adresse und Formular |
| Maximale Anfragen | mmd_altcha_ratelimit_max_requests |
5 | Erlaubte Absendungen im Zeitfenster |
| Zeitfenster (Minuten) | mmd_altcha_ratelimit_window_minutes |
60 | Länge des Zeitfensters in Minuten |
Das Limit gilt getrennt für Kontaktformular, Newsletter und Registrierung. Gezählt werden Absendungen, die Honeypot, Inhaltsvalidierung und ALTCHA bestanden haben, unabhängig davon, ob OXID die Absendung danach annimmt. Wird das Limit erreicht, sieht der Besucher die Meldung "Zu viele Anfragen. Bitte warten Sie einen Moment." gefolgt von "Bitte warten Sie N Sekunden.", wobei N das ganze Zeitfenster in Sekunden ist.
Challenge-Endpunkt
| Einstellung | Schlüssel | Standard | Wirkung |
|---|---|---|---|
| Challenge-Endpoint Rate Limit | mmd_altcha_challenge_ratelimit_enabled |
An | Begrenzt Abrufe des Challenge-Endpunkts (DoS-Schutz) |
| Max. Challenges pro Minute | mmd_altcha_challenge_ratelimit_max |
30 | Erlaubte Abrufe pro Client-Adresse im Zeitfenster |
| Challenge-Zeitfenster (Sekunden) | mmd_altcha_challenge_ratelimit_window |
60 | Länge des Zeitfensters in Sekunden, intern auf volle Minuten aufgerundet |
Die Bezeichnung "Max. Challenges pro Minute" gilt nur beim Standard-Zeitfenster von 60 Sekunden. Tatsächlich bestimmt das Zeitfenster darunter, worauf sich die Anzahl bezieht.
Protokollierung
Der Admin zeigt in der Gruppe "Protokollierung" die Option "Spam-Versuche protokollieren" (mmd_altcha_log_spam_attempts). Die Option hat im Code keine Wirkung: Das Modul protokolliert keine blockierten Versuche, egal wie sie eingestellt ist.
Inhaltsvalidierung im Detail
Die Inhaltsvalidierung läuft nur, wenn das Formular auswertbare Felder liefert. Sie zählt auffällige Felder und lehnt erst ab, wenn mindestens zwei Felder auffällig sind.
Eine Wegwerf-E-Mail-Adresse allein löst keine Ablehnung aus. Sie zählt als ein auffälliges Feld und führt nur zusammen mit mindestens einem weiteren auffälligen Feld (zum Beispiel Gibberish im Namen) zur Ablehnung. Bei der Newsletter-Anmeldung mit nur einer E-Mail-Adresse kann die Inhaltsvalidierung deshalb nie ablehnen.
Geprüfte Felder
| Formular | Gibberish-Prüfung | |
|---|---|---|
| Kontakt, Newsletter | E-Mail-Adresse | Vorname, Nachname |
| Registrierung | E-Mail-Adresse (lgn_usr) |
Vorname, Nachname, Straße, Ort |
Felder mit weniger als 4 Zeichen werden übersprungen, von längeren Eingaben werden nur die ersten 200 Zeichen geprüft.
Gibberish-Erkennung
Ein Feld gilt als Gibberish, sobald eine der folgenden Regeln zutrifft:
| Regel | Schwellenwert |
|---|---|
| Konsonanten-Anteil an den Buchstaben (a-z, ä, ö, ü) | Über 75 Prozent, bei höchstens 7 Buchstaben über 90 Prozent. Als Vokale zählen a, e, i, o, u, y, ä, ö, ü |
| Tastatur-Sequenzen | asdf, sdfg, dfgh, fghj, ghjk, hjkl, zxcv, xcvb, cvbn, vbnm, qwert, werty, ertyu, rtyui, tyuio, yuiop, qwertz, wertz |
| Wiederholte Zeichen | 3 oder mehr gleiche Zeichen in Folge |
| Aufeinanderfolgende Konsonanten | 6 oder mehr Konsonanten in Folge (y zählt nicht als Konsonant) |
| Konsonanten-Cluster | 2 oder mehr Gruppen mit je 4 oder mehr Konsonanten |
| Bigramme | Bei mindestens 5 Buchstaben sind weniger als 30 Prozent der Buchstabenpaare in der Liste von 211 bekannten Paaren |
Wegwerf-E-Mail-Domains
Die Domain der E-Mail-Adresse wird (in Kleinbuchstaben) exakt mit einer fest eingebauten Liste von 56 Domains verglichen. Subdomains werden nicht erkannt, und die Liste lässt sich nicht über den Admin erweitern.
guerrillamail.com, guerrillamail.de, guerrillamailblock.com, guerrillamail.info, guerrillamail.biz, guerrillamail.net, guerrillamail.org, grr.la, sharklasers.com, mailinator.com, mailinator.net, mailinater.com, tempmail.com, temp-mail.org, temp-mail.de, throwaway.email, throwaway.com, yopmail.com, yopmail.fr, dispostable.com, discard.email, mailnesia.com, maildrop.cc, fakeinbox.com, mailcatch.com, trashmail.com, trashmail.me, trashmail.net, trash-mail.com, tempail.com, tempr.email, tempmailo.com, tempomail.fr, tempinbox.com, tempmailaddress.com, mohmal.com, burner.kiwi, minutemail.com, emailondeck.com, getnada.com, mailsac.com, harakirimail.com, tmail.ws, emailfake.com, crazymailing.com, mailtemp.net, incognitomail.org, spamgourmet.com, mytemp.email, mailnull.com, spamcero.com, jetable.org, mailtothis.com, mailexpire.com, emailisvalid.com, trashymail.com
Praxis-Beispiele
Shop hinter einem Firmennetz mit vielen gleichzeitigen Käufern: Viele Besucher teilen sich dieselbe Adresse. Erhöhe "Maximale Anfragen" auf 20 und lass das "Zeitfenster (Minuten)" bei 60.
Strengeres Limit für Kontaktformular-Spam: Setze "Maximale Anfragen" auf 3 und "Zeitfenster (Minuten)" auf 120, dann sind pro Adresse höchstens 3 Absendungen je Formular in zwei Stunden möglich.
Falsch-Positive durch die Inhaltsvalidierung eingrenzen: Schalte nur "Inhaltsvalidierung aktivieren" aus. ALTCHA, Honeypot und Rate Limiting bleiben aktiv.