Trick # 573 | Dieser Beitrag beinhaltet 770 Wörter. – Geschätzte Lesezeit: ca. 4 Minuten.
WordPress lässt sich recht sicher machen; aber es erlaubt Usern bisweilen auch, ziemlich einfache Passwörter zu setzen. Es gibt zwar Warnungen; aber teilweise bleibt es beim Mahnfinger. Sie können aber nachbessern und die Passwortrichtlinien verschärfen. Wir zeigen Ihnen wie’s geht.
«Uns schwebt vor, dass Passwörter mindestens 8 Zeichen lang sind, Gross- und Kleinbuchstaben – aber auch Zahlen und Sonderzeichen enthalten. Ferner erlauben wir nicht, dass der Username und das Passwort übereinstimmende Zeichenfolgen haben. Und schliesslich checkt unsere Passwortroutine, ob nicht Folgen wie «12345» oder «abcde» oder «qwertz» vorkommen. Das erhöht den Schutz Ihrer Website schon beim Passwortsetzen.
Die Anforderungen an Passwörter werden verschärft mit folgendem Code. Legen Sie ihn in der Datei functions.php ab – im WordPress-Backend zu finden unter Design/Theme-Datei-Editor:
function enforce_strong_passwords($password, $user_data) {
// Mindestanforderungen prüfen
if (strlen($password) < 8 ||
!preg_match('/[A-Z]/', $password) ||
!preg_match('/[a-z]/', $password) ||
!preg_match('/[0-9]/', $password) ||
!preg_match('/[\W]/', $password)) {
return new WP_Error('weak_password', 'Ihr Passwort muss mindestens 8 Zeichen lang sein und Großbuchstaben, Kleinbuchstaben, Zahlen und Sonderzeichen enthalten.');
}// Benutzername im Passwort überprüfen
if (!empty($user_data->user_login) && stripos($password, $user_data->user_login) !== false) {
return new WP_Error('username_in_password', 'Ihr Passwort darf keine Teile Ihres Benutzernamens enthalten.');
}// Einfache Zeichenfolgen überprüfen
$common_patterns = [
// Zahlenfolgen
'12345', '54321', '123456', '654321', '1234567', '7654321',
'111111', '222222', '333333', '444444', '555555', '666666', '777777', '888888', '999999', '000000',// Alphabetische Sequenzen
'abcdef', 'fedcba', 'abcd', 'dcba', 'abcde', 'edcba',
'qwertz', 'ztrewq', 'asdfgh', 'hgfdsa', 'yxcvbn', 'nbvcxy',// Tastaturmuster
'1q2w3e', '3e2w1q', '1qay2wsx', 'qaywsx', 'wsxcde', 'qwertz', 'tuvwxyz',// Häufige Wörter und Phrasen
'password', 'passwort', 'admin', 'welcome', 'letmein', 'freedom', 'iloveyou',
'monkey', 'dragon', 'sunshine', 'football', 'baseball', 'soccer', 'superman',// Jahreszahlen und Kombinationen
'2023', '2024', '2025', '2026', '2027', '2028', '2029', '2030', '2031', '2032', '2033', '2034', '2035', '12345678', '87654321', 'password1', '123password', 'mypassword'
];foreach ($common_patterns as $pattern) {
if (stripos($password, $pattern) !== false) {
return new WP_Error('common_pattern_in_password', 'Ihr Passwort enthält einfache Muster oder schwache Zeichenfolgen.');
}
}return true;
}add_filter('validate_password_reset', function ($errors, $user) {
$password = $_POST['pass1'] ?? '';
$result = enforce_strong_passwords($password, $user);if (is_wp_error($result)) {
$errors->add($result->get_error_code(), $result->get_error_message());
}return $errors;
}, 10, 2);Damit sollten die Hürde etwas höher liegen als ohne Massnahmen – simpelste Passwörter bleiben da auf der Strecke.
Vielleicht noch dies:
- Auf Zeile 3 des Codes sehen Sie, dass unsere Passwörter mindestens 8 Zeichen umfassen müssen. Den Wert können Sie anpassen – sollten dann aber auch die Errormessage in Zeile 8 überarbeiten.
- Zeilen 16 bis 34: Dort sind zahlreiche Zeichenfolgen hinterlegt, die nicht akzeptiert werden. Sie können die Liste nach Ihren Bedürfnissen ganz einfach kürzen oder erweitern.
Option: Anwendungspasswörter ausschalten
Vielleicht auch eine Überlegung wert: Die untenstehende Zeile deaktiviert Anwendungspasswörter auf der gesamten WordPress-Seite. Solche Anwendungspasswörter ermöglichen API-Zugriff ohne Zwei-Faktor-Authentifizierung oder andere Sicherheitsmechanismen. Wenn Ihre Website keine externen Anwendungen oder Dienste verwendet, die Anwendungspasswörter benötigen, kann die Deaktivierung von Anwendungspasswörtern das Risiko unbefugter Zugriffe reduzieren.
Der Code lässt sich in die functions.php kopieren; im Backend unter Design/Theme-Datei-Editor:
add_filter('wp_is_application_passwords_available', '__return_false');Wieder etwas für ein sichereres WordPress gemacht …
Werbung


