Wie kann ich in WordPress die Login-Versuche begrenzen?
Von Eureka Studio · Aktualisiert
Kurze Antwort
WordPress lässt jeden endlos Passwörter raten. Um Login-Versuche zu begrenzen, nutzt du ein Plugin, das fehlgeschlagene Anmeldungen pro IP innerhalb eines Zeitfensters zählt und diese IP eine Weile sperrt – zum Beispiel bedeuten 8 Fehlversuche in 5 Minuten 15 Minuten Wartezeit. Achte darauf, dass auch Fehlversuche bei 2FA und Anwendungspasswörtern mitzählen, und setze deine eigene IP auf die Zulassungsliste.
Schritte
1Schritt 1
Sehen, wie unbegrenztes Raten aussieht
Ohne Limit beantwortet WordPress jedes falsche Passwort mit derselben Fehlermeldung, so oft es gefragt wird – und die Standardmeldung bestätigt sogar, dass der Benutzername existiert.

2Schritt 2
Login-Limits einschalten und die Regeln festlegen
Öffne in WordPress Hushfort → Limits & Einschränkungen und schalte „Login-Limits aktivieren“ ein. Standardmäßig gilt: 8 Fehlversuche innerhalb von 5 Minuten, dann 15 Minuten Sperre; nach 4 Sperren in 24 Stunden dauert die Sperre 1.440 Minuten. Klicke auf „Änderungen speichern“.

3Schritt 3
Die eigene IP freigeben und die IP-Quelle prüfen
Lege weiter unten die „IP-Quelle“ fest. „Automatisch (nur verifizierte Proxy-Header)“ passt für die meisten Websites, auch für solche hinter Cloudflare. Füge dann deine Büro- oder Heim-IP unter „IPs auf der Zulassungsliste“ hinzu, damit du dich nie selbst aussperren kannst, und speichere.

4Schritt 4
Eine E-Mail erhalten, wenn eine IP gesperrt wird
Schalte „Warn-E-Mail“ ein und gib eine oder mehrere Adressen an, durch Kommas getrennt. Der Schalter braucht funktionierendes SMTP auf der Website; ohne SMTP lässt Hushfort die Option aus und sagt dir, warum.

5Schritt 5
Dem Limit bei der Arbeit zusehen
Nach der erlaubten Anzahl an Fehlversuchen wird die IP gesperrt, statt einen weiteren Versuch zu bekommen. Der Verlauf listet jede aktive Sperre mit dem versuchten Benutzernamen, der Anzahl der Versuche und dem Ende der Sperre auf – mit einer Schaltfläche „Freigeben“.
Warum das wichtig ist
Ein Brute-Force-Angriff ist reine Geduld: ein Passwort probieren, falsch, das nächste probieren. WordPress stört das nicht. Es beantwortet tausend falsche Versuche von derselben Adresse so höflich wie den ersten. Hat ein Konto ein schwaches oder mehrfach verwendetes Passwort, ist es ohne begrenzte Login-Versuche nur eine Frage der Zeit.
Ein Login-Limit ändert die Rechnung. Kann eine IP nur eine Handvoll Versuche machen, bevor sie fünfzehn Minuten warten muss, dauert das Erraten eines ordentlichen Passworts Jahre statt Stunden. Außerdem muss dein Server die Login-Seite nicht immer wieder für einen Bot ausliefern.
Was es allein nicht abdeckt. Angreifer, die über Tausende IP-Adressen verfügen, können von jeder ein paar Versuche schicken. Deshalb wirkt ein Login-Limit am besten zusammen mit der Zwei-Faktor-Anmeldung, die ein erratenes Passwort ohne den Code nutzlos macht.
Häufige Fehler
- Nur das Login-Formular zählen. Passwörter lassen sich auch über
xmlrpc.php, über Anwendungspasswörter der REST-API und beim Schritt mit dem Zwei-Faktor-Code ausprobieren. Zählen diese nicht zum Limit, nutzen Angreifer einfach sie. Schließe auch den XML-RPC-Login; siehe XML-RPC sicher deaktivieren. - Hinter einem Proxy die falsche IP lesen. Steht deine Website hinter Cloudflare und liest
das Plugin die Adresse des Proxys, kann ein einziger Bot alle Besucher aussperren. Vertraut es
stattdessen blind dem
X-Forwarded-For-Header, kann ein Bot sich bei jeder Anfrage eine neue IP ausdenken und wird nie gezählt. Die sichere Regel: Proxy-Headern nur vertrauen, wenn die Anfrage wirklich vom Proxy kommt. - Zu lange Sperren. Eine 24-Stunden-Sperre für drei Tippfehler bestraft dein eigenes Team. Halte die erste Sperre kurz und verlängere wiederholte Sperren.
- Keine Zulassungsliste. Füge deine eigene feste IP hinzu, damit dich ein vergessenes Passwort nie aussperrt.
Ohne Plugin
WordPress hat einen Hook, wp_login_failed, der nach jeder fehlgeschlagenen Anmeldung ausgelöst
wird. Du kannst Fehlversuche mit einem Transient zählen und Anmeldungen ablehnen, wenn die Zahl
zu hoch ist. Eine minimale Version als Must-use-Plugin (wp-content/mu-plugins/login-limit.php):
<?php
add_action( 'wp_login_failed', function () {
$key = 'll_' . md5( $_SERVER['REMOTE_ADDR'] );
$n = (int) get_transient( $key );
set_transient( $key, $n + 1, 15 * MINUTE_IN_SECONDS );
} );
add_filter( 'authenticate', function ( $user ) {
$key = 'll_' . md5( $_SERVER['REMOTE_ADDR'] );
if ( (int) get_transient( $key ) >= 8 ) {
return new WP_Error( 'too_many', 'Too many failed attempts. Try again later.' );
}
return $user;
}, 30 );
Das funktioniert, aber sei ehrlich, was es nicht abdeckt: Es liest nur REMOTE_ADDR, zählt
hinter einem Proxy also den Proxy; es zählt Rateversuche über XML-RPC-Multicall nicht als
einzelne Versuche; es hat keine Zulassungsliste, keine Warn-E-Mail und kein Protokoll. Jedes
davon bedeutet mehr Code, den du schreiben und pflegen musst.
Manche Hoster bieten außerdem Werkzeuge auf Serverebene an, etwa fail2ban, das das Access-Log überwacht. Das ist stark, wenn dein Hoster es für dich betreibt; auf Shared Hosting kannst du es meist nicht einrichten.
Wenn etwas schiefgeht
- Du hast dich selbst ausgesperrt. Warte, bis die Sperre abläuft, versuche es aus einem anderen Netz, etwa über mobile Daten, oder bitte einen anderen Administrator, deine IP auf die Zulassungsliste zu setzen.
- Alle werden auf einmal ausgesperrt. Deine Website steht vermutlich hinter einem Proxy, und das Plugin liest die IP des Proxys. Ändere die Einstellung „IP-Quelle“.
- Es kommt nie zu Sperren. Prüfe, ob die IP-Quelle einem Header vertraut, den Bots fälschen können. Zeigt jeder Versuch eine andere „IP“, ist das die Ursache.
Alle Wege zurück hinein findest du unter Ausgesperrt nach Änderung der Login-URL.
Mit Hushfort
Login-Limits gehören zu Hushfort Pro, dem kostenpflichtigen Add-on zu Hushfort Security, dem kostenlosen WordPress-Sicherheitsplugin.
Die Ebene Login-Limits von Hushfort zählt fehlgeschlagene Anmeldungen pro IP (oder pro IP und Benutzername) innerhalb eines Zeitfensters deiner Wahl und sperrt die IP für eine Dauer deiner Wahl. Wiederholte Sperren innerhalb von 24 Stunden können eine längere, verlängerte Sperre auslösen.
- Fehlgeschlagene Zwei-Faktor-Codes und fehlgeschlagene Anmeldungen mit Anwendungspasswörtern zählen ebenfalls mit – es gibt also keine Seitentür zum Raten.
- Proxy-Headern wird nur vertraut, wenn die Anfrage wirklich von Cloudflare oder aus einem privaten Netzwerk kommt.
- Warn-E-Mails gehen an so viele Adressen, wie du angibst.
- Jeder fehlgeschlagene und blockierte Versuch erscheint in einem filterbaren Verlauf.
- Die Zulassungsliste wird mit allen anderen Hushfort-Ebenen geteilt, du trägst dich also nur einmal ein.
Das Deaktivieren von Hushfort hebt alle bestehenden Sperren auf.
Häufige Fragen
Wie viele Login-Versuche sollte ich erlauben?
Begrenzt WordPress Login-Versuche standardmäßig?
Kann mich ein Login-Limit aus meiner eigenen Website aussperren?
Reicht es, Login-Versuche zu begrenzen, um Brute Force zu stoppen?
Warum treffen Sperren hinter Cloudflare die Falschen?
Verwandte Anleitungen
Wie richte ich die Zwei-Faktor-Authentifizierung (2FA) in WordPress ein?
2FA in WordPress einrichten: Zwei-Faktor-Authentifizierung mit einer Authenticator-App, gesicherten Wiederherstellungscodes und Plan B bei Handyverlust.
Zu den SchrittenWas ist xmlrpc.php, und wie deaktiviere ich XML-RPC in WordPress?
XML-RPC in WordPress deaktivieren: xmlrpc.php ist eine zweite Login-Tür, die ein versteckter Login nicht schließt. Sicher schließen, Pingbacks behalten.
Zu den SchrittenWie ändere ich die Login-URL von WordPress und verstecke wp-admin?
WordPress-Login-URL ändern und wp-admin verstecken, in fünf sicheren Schritten: erst testen, dann abmelden – und wissen, wie du wieder reinkommst.
Zu den Schritten
