WordPress sicherer machen – Die Login-Fehlermeldung deaktivieren
Mit einem Zusatz in der functions.php kann die Fehlermeldung im WordPress-Login optimiert und die Sicherheit der Website verbessert werden.
Wer sich im WordPress-Dashboard anmelden möchte benötigt einen Benutzernamen und ein Passwort. Wenn beide Angaben korrekt eingegeben wurden erfolgt der Login, doch was passiert wenn einer der beiden Werte falsch ist? WordPress unterstützt den Benutzer und verkündet sinngemäß „Passwort falsch“ oder „Benutzername falsch“. Im Umkehrschluss bedeutet dies soviel, wie dass die andere Angabe korrekt war. Ein möglicher Angreifer ist nun um eine wertvolle Erkenntnis reicher.
Komfort oder Sicherheit?
Im Internet stellt sich häufig die Frage ob die komfortable Handhabung wichtiger ist als die Sicherheit. Speichert ihr ein Passwort im Browser oder gebt ihr es jedes Mal neu ein? Liegen eure Daten in der Cloud und sind sie dort auch sicher genug? Diese Fragen muss jeder Nutzer für sich selbst entscheiden. Was für den einen noch nicht sicher genug ist, kann für den anderen schon pure Paranoia sein. Entscheidend ist, dass komfortable Funktionen häufig zu Lasten der Sicherheit gehen. So auch die Hilfe in der Anmelde-Maske von WordPress.
WordPress-Hilfe deaktivieren
Mit folgendem Snippet deaktiviert ihr die Hinweise bei der fehlerhaften Eingabe von Passwort und/oder Benutzernamen. Fügt den Code dazu einfach über die functions.php
oder ein seitenspezifisches Plugin ein.
add_filter('login_errors',function($a) {
return null;
});
Anschließend wird der Hinweis nicht länger angezeigt, die rote Umrandung der Fehler-Box bleibt jedoch bestehen.
Hallo zusammen,
meiner Meinung nach bringt die Unterdrückung der Fehlermeldung nichts, wenn ich nicht auch den eingegebenen Namen aus dem Benutzerfeld lösche. So sehe ich immer noch, dass es den Benutzer gibt. Bei falschem Benutzer wird der Name aus dem Feld wieder gelöscht. So sollte es sein!
Wie bekomme ich denn hin, dass der Name aus dem Feld verschwindet?
Danke für eure Hilfe!
Danke für den Tipp. Eine Alternative wäre, die Nachricht zu ersetzen. So spart man sich den doofen leeren roten Behälter.
Man sucht im String einfach nach dem Wortlaut „Falscher Benutzername“ und ersetzt Ihn durch einen beliebigen Text.
Beispiel:
add_filter(‚login_errors‘,’error_falsches_pw‘);
function error_falsches_pw($error){
$pos = strpos($error, ‚Falscher Benutzername‘);
if (is_int($pos)) {
$error = „Falsches Passwort eingegeben.“;
}
return $error;
}
[…] Haben Sie die Login Funktion so angepasst, damit WordPress nicht schon beim Login Versuch einen Fehler begeht? Wer nicht weiß was ich meine hier ein Link. […]
Ah, ok, vielen Dank!!
Hi und vielen Dank für diesen Tipp, aber durch den Eintrag in die functions.php ist das dann doch nicht mehr updatesicher, oder?
LG, Kathryn.
Hallo Kathryn, die
functions.php
ist Bestandteil des Themes. Wenn du die WordPress-Installation updatest, sollte das Theme davon nicht betroffen sein. Das Theme selbst darf natürlich nicht überschrieben werden. Aber grundsätzlich ist diefunctions.php
updatesicher.Zu dem Thema habe ich auch noch eine nützliche PDF gefunden :-)
http://newcodepoet.files.wordpress.com/2012/07/lockingdownwordpress1-1.pdf
Gruß,
Jan
Hi, ggf. hilft jemanden noch folgender Blog-Post http://suckup.de/cms/wordpress-cms-allgemein/wordpress-sicherheit-erhoehen/ :)
– z.B.: Login Versuche limitieren via Plugin …
Heyho Jonas, wie immer hab ich da auch was für :) – ich persönlich finde das Plugin
Private! WordPress Access Control Manager sehr geil.
Ihr habt die Möglichkeit einmal den Login wie Jonas beschieben hat anzupassen, dazu gibt es gesicherten Java-Login, Teergrubenschutz, Brutforce usw.. Plugin und Theme-Ordner sind nicht mehr über Umwege erreichbar und eine Zeitgesteuerte-Login-Freigabe ist ebenfalls möglich wenn gewünscht.
Das ganze lässt sich kinderleicht einstellen und fehlt in keiner meiner Webseiten :)
LG
René
Hi René! Das Plugin kenne ich gar nicht, es klingt aber sehr interessant. Ich schaue es mir beizeiten einmal im Detail an. Besten Dank für den Tipp!
Seit WordPress 3.4 könnte man an Stelle der anonymen Funktion auch
__return_null()
nutzen.add_filter( 'login_errors', '__return_null' );
Vielen Dank für den Hinweis!