Comment-Spam und REST-API-Schutz
Eine Kundin hat uns geschrieben, weil sie morgens 200 neue Kommentare hatte. Alle unter verschiedenen Rezepten, alle mit Links zu dubiosen Online-Shops...
Eine Kundin hat uns geschrieben, weil sie morgens 200 neue Kommentare hatte. Alle unter verschiedenen Rezepten, alle mit Links zu dubiosen Online-Shops. Ihr Blog hatte kein Captcha und keinen Spam-Schutz, nur die Standard-WordPress-Kommentarfunktion.
Das Foodblogliebe Theme setzt nicht auf Captchas. Die sind nervig für echte Leser und lösen das Problem nur teilweise, weil moderne Bots viele Captcha-Typen inzwischen knacken können. Stattdessen arbeitet das Theme mit einem Honeypot-Feld.
Ein Honeypot ist ein unsichtbares Formularfeld, das menschliche Besucher nie sehen und nie ausfüllen. Bots füllen es automatisch aus, weil sie alle Felder bearbeiten. Wird das Feld ausgefüllt, ist klar: Das ist kein echter Kommentar.
Dazu kommt eine Zeitprüfung. Wenn ein Kommentar innerhalb von zwei Sekunden nach dem Laden der Seite abgeschickt wird, hat kein Mensch so schnell gelesen, gescrollt und getippt. Das ist ein Bot. Das Theme erkennt das und blockiert den Kommentar.
Optional lässt sich ein Sprachfilter aktivieren. Der ist besonders praktisch für deutschsprachige Foodblogs, die massenhaft englische oder kyrillische Spam-Kommentare bekommen.
Die REST API von WordPress ist ein anderes Thema, aber genauso relevant. In der Standardkonfiguration kann jeder über die REST API die Benutzernamen aller registrierten Nutzer abfragen. Ein Angreifer tippt einfach /wp-json/wp/v2/users in den Browser und bekommt eine Liste. Mit diesen Namen kann er gezielt Brute-Force-Angriffe starten.
Das Theme blockiert genau diese Abfrage für nicht-authentifizierte Besucher. Die REST API funktioniert weiterhin für eingeloggte Nutzer und für alles, was der Gutenberg-Editor braucht. Aber von außen lassen sich keine Benutzerinformationen mehr auslesen.
Unser Tipp: Prüfe einmal, ob du /wp-json/wp/v2/users auf deinem Blog aufrufen kannst, ohne eingeloggt zu sein. Wenn du eine Benutzerliste siehst, ist die API nicht abgesichert.
Wenn du diese Lektion gelesen hast, markiere sie als abgeschlossen.
