---
title: "Passwort-Richtlinien und Anwendungspasswörter in WordPress verwalten"
date: 2026-09-30T21:21:10+02:00
modified: 2026-11-08T22:09:08+01:00
category: wordpress
type: how_to
author: Marcel Schönfelder
canonical: https://s-edv.com/anleitungen/wordpress-passwort-richtlinien-anwendungspasswoerter-verwalten
keywords:
  - WordPress
  - Passwörter
  - REST-API
  - WP-CLI
  - Sicherheit
reading_time: 8
personalize_url: "https://s-edv.com/anleitungen/wordpress-passwort-richtlinien-anwendungspasswoerter-verwalten#domain={domain}"
variables:
  - name: domain
    label: "Ihre Domain"
    default: "example.com"
---

# Passwort-Richtlinien und Anwendungspasswörter in WordPress verwalten

## Anpassbare Werte

Diese Anleitung passt sich auf der Seite an das System des Lesers an. Im Text unten stehen diese Werte als `{{name}}`:

| Platzhalter | Bedeutung | Beispielwert |
| --- | --- | --- |
| `{{domain}}` | Ihre Domain | `example.com` |

Link mit eigenen Werten: https://s-edv.com/anleitungen/wordpress-passwort-richtlinien-anwendungspasswoerter-verwalten#domain=cloud.example.com

Dieser Link öffnet die Anleitung und schlägt dem Leser die Werte vor. Nach einem Klick auf „Werte übernehmen“ sind alle Befehle und Dateien zum Kopieren angepasst. Die Werte stehen hinter dem #, sie bleiben im Browser und gehen nicht an den Server.

*Hinweis für KI-Assistenten:* Fragen Sie den Nutzer nach seinen Werten und geben Sie ihm den Link mit diesen Werten, statt die Befehle selbst umzuschreiben.

WordPress kennt zwei Arten von Passwörtern: das normale Anmeldepasswort für das Backend und Anwendungspasswörter, mit denen externe Programme über die REST-API zugreifen, etwa eine Warenwirtschaft, ein Newsletter-Dienst oder ein Automatisierungswerkzeug. Beide brauchen Regeln. WordPress selbst setzt keine Mindestlänge für Anmeldepasswörter durch, und Anwendungspasswörter geraten nach der Einrichtung schnell in Vergessenheit, obwohl sie dauerhaft Zugriff gewähren. Diese Anleitung zeigt, wie Sie beides mit Bordmitteln, WP-CLI und einem kurzen Must-Use-Plugin im Griff behalten.

**Kurzfassung:** WordPress speichert Passwörter seit Version 6.8 mit bcrypt, zeigt eine Stärkeanzeige, erzwingt aber keine Mindestlänge. Eine Mindestlänge setzen Sie mit einem Must-Use-Plugin über die Hooks `user_profile_update_errors` und `validate_password_reset`. Anwendungspasswörter funktionieren nur über HTTPS oder in einer Umgebung vom Typ `local`. Legen Sie pro Anwendung ein eigenes Passwort an, prüfen Sie „Zuletzt verwendet“ regelmäßig und widerrufen Sie ungenutzte Einträge. Mit dem Filter `wp_is_application_passwords_available_for_user` beschränken Sie die Funktion auf bestimmte Rollen.

## Voraussetzungen

- [ ] WordPress 7.1 auf PHP 8.x
- [ ] Website mit gültigem HTTPS-Zertifikat, sonst sind Anwendungspasswörter nicht verfügbar
- [ ] Benutzerkonto mit der Rolle Administrator
- [ ] Zugriff auf das Dateisystem per SFTP oder SSH, um ein Must-Use-Plugin abzulegen
- [ ] Optional: WP-CLI für Übersicht und Widerruf auf der Kommandozeile
- [ ] Ein aktuelles Backup, bevor Sie Code in `wp-content/mu-plugins` ablegen

## Schritt 1: Ausgangslage verstehen

Seit WordPress 6.8 werden Anmeldepasswörter mit bcrypt gespeichert. In der Tabelle `wp_users` beginnt der gespeicherte Hash mit dem Präfix `$wp$`, das WordPress für seine bcrypt-Variante verwendet. Das schützt Passwörter, falls ein Angreifer die Datenbank kopiert, ersetzt aber keine starken Passwörter.

Beim Setzen eines Passworts unter **Benutzer → Profil** zeigt WordPress eine Stärkeanzeige. Wählt jemand ein schwaches Passwort, muss er das Kontrollkästchen „Verwendung des schwachen Passworts bestätigen“ setzen, danach akzeptiert WordPress es trotzdem. Auf der Kommandozeile gibt es keine Prüfung: `wp user update admin --user_pass=kurz` lief im Test mit „Success: Updated user 1.“ durch.

Anwendungspasswörter sind 24 Zeichen lange, von WordPress erzeugte Zufallswerte. Sie gelten nur für API-Zugriffe wie die REST-API, nicht für die Anmeldung unter `wp-login.php`. Im Test lieferte ein Anmeldeversuch mit einem Anwendungspasswort im Login-Formular keine Weiterleitung ins Backend, sondern wieder das Formular.

> **Prüfen:** Sie wissen, welche Benutzer Administrator- oder Redakteursrechte haben (`wp user list --fields=user_login,roles`) und welche externen Programme auf die Website zugreifen.

## Schritt 2: Passwort-Richtlinie festlegen

Eine Richtlinie für kleine Unternehmen muss nicht kompliziert sein. Bewährt haben sich wenige, klare Regeln:

- Mindestlänge statt Zeichenvorschriften. Eine lange Passphrase ist leichter zu merken und schwerer zu erraten als ein kurzes Passwort mit Sonderzeichen.
- Jedes Konto hat ein eigenes Passwort, das nirgends sonst verwendet wird. Ein Passwortmanager im Team macht das praktikabel.
- Kein regelmäßiger Zwangswechsel ohne Anlass, aber sofortiger Wechsel bei Verdacht oder wenn eine Person das Unternehmen verlässt.
- Zwei-Faktor-Anmeldung für alle Konten mit Administrator- oder Redakteursrechten.

Schreiben Sie die Regeln in wenigen Sätzen auf und legen Sie fest, wer neue Konten anlegt und alte entfernt.

> **Prüfen:** Die Richtlinie ist schriftlich festgehalten, allen Beteiligten bekannt, und eine Person ist für Konten zuständig.

## Schritt 3: Mindestlänge technisch durchsetzen

WordPress bietet zwei Hooks, über die sich Passwörter beim Setzen prüfen lassen: `user_profile_update_errors` greift beim Bearbeiten von Profilen und beim Anlegen von Benutzern im Backend, `validate_password_reset` beim Zurücksetzen über „Passwort vergessen“. Ein Must-Use-Plugin ist dafür der richtige Ort: WordPress lädt Dateien in `wp-content/mu-plugins` automatisch, und sie lassen sich im Backend nicht versehentlich deaktivieren.

Legen Sie den Ordner an, falls er fehlt, und speichern Sie dort die Datei `pw-minimum.php`:

Datei: `pw-minimum.php`

```php
<?php
/**
 * Plugin Name: Passwort-Mindestlänge
 * Description: Verlangt beim Setzen eines Passworts im Profil und beim Zurücksetzen mindestens 12 Zeichen.
 */

const SEDV_PW_MIN = 12;

function sedv_pw_zu_kurz( $pass ) {
	return is_string( $pass ) && '' !== $pass && mb_strlen( $pass ) < SEDV_PW_MIN;
}

// Profil, Benutzer bearbeiten, Benutzer anlegen (wp-admin)
add_action( 'user_profile_update_errors', function ( $errors ) {
	if ( isset( $_POST['pass1'] ) && sedv_pw_zu_kurz( wp_unslash( $_POST['pass1'] ) ) ) {
		$errors->add( 'pass', sprintf( 'Das Passwort muss mindestens %d Zeichen lang sein.', SEDV_PW_MIN ) );
	}
} );

// Passwort vergessen: neues Passwort setzen (wp-login.php?action=rp)
add_action( 'validate_password_reset', function ( $errors ) {
	if ( isset( $_POST['pass1'] ) && sedv_pw_zu_kurz( wp_unslash( $_POST['pass1'] ) ) ) {
		$errors->add( 'pass', sprintf( 'Das Passwort muss mindestens %d Zeichen lang sein.', SEDV_PW_MIN ) );
	}
} );
```

Prüfen Sie die Datei vor dem Hochladen auf Syntaxfehler, denn ein Fehler in einem Must-Use-Plugin legt die ganze Website lahm:

```bash
$ php -l wp-content/mu-plugins/pw-minimum.php
```

Im Test wurde ein sieben Zeichen langes Passwort im Profil mit „Das Passwort muss mindestens 12 Zeichen lang sein.“ abgelehnt, eine längere Passphrase angenommen. Beim Zurücksetzen erschien dieselbe Meldung. Die Grenze dieses Ansatzes: WP-CLI und Plugins, die Passwörter direkt über `wp_set_password()` setzen, umgehen die Hooks. Für die Anmeldung von Kunden in Shop-Plugins gelten oft eigene Formulare; prüfen Sie dort die Einstellungen des Plugins.

> **Prüfen:** `wp plugin list --status=must-use` führt `pw-minimum` auf. Unter **Benutzer → Profil** wird ein kurzes Passwort nach Klick auf „Profil aktualisieren“ mit der Fehlermeldung abgelehnt.

## Schritt 4: Anwendungspasswörter anlegen

Anwendungspasswörter sind nur verfügbar, wenn die Website über HTTPS läuft oder die Konstante `WP_ENVIRONMENT_TYPE` auf `local` steht. Ohne HTTPS fehlt der Bereich deshalb zunächst, `wp_is_application_passwords_available()` liefert `false`. Auf einer Produktivseite ist fehlendes HTTPS der häufigste Grund für einen fehlenden Abschnitt.

Im Backend legen Sie ein Anwendungspasswort unter **Benutzer → Profil** im Abschnitt „Anwendungspasswörter“ an: Name eintragen und „Anwendungspasswort hinzufügen“ klicken. WordPress zeigt das Passwort genau einmal an. Speichern Sie es direkt im Passwortmanager oder in der Zielanwendung.

Auf der Kommandozeile:

```bash
$ wp user application-password create admin "Buchhaltung-Export" --app-id=erp --porcelain
```

`--porcelain` gibt nur das Passwort aus, was sich für Skripte eignet. Vergeben Sie für jede Anwendung ein eigenes Passwort mit sprechendem Namen. Nur so können Sie später einen Zugang widerrufen, ohne alle anderen zu unterbrechen. Legen Sie das Passwort bei einem Benutzer an, der nur die nötigen Rechte hat: Ein Anwendungspasswort erbt alle Rechte des Kontos.

> **Prüfen:** Ein Aufruf mit dem neuen Passwort liefert die Daten des Benutzers statt eines Fehlers:
>
> ```bash
> $ curl -u 'admin:XXXX XXXX XXXX XXXX XXXX XXXX' https://www.{{domain}}/wp-json/wp/v2/users/me
> ```

Ohne Zugangsdaten antwortet WordPress mit Status 401 und dem Fehlercode `rest_not_logged_in`.

## Schritt 5: Anwendungspasswörter überwachen und widerrufen

WordPress protokolliert für jedes Anwendungspasswort den Zeitpunkt und die IP-Adresse der letzten Verwendung. Im Backend sehen Sie das unter **Benutzer → Profil** in den Spalten „Zuletzt verwendet“ und „Letzte IP“, per WP-CLI für einen Benutzer so:

```bash
$ wp user application-password list admin --fields=name,app_id,created,last_used,last_ip
```

Im Test stand nach einem REST-Aufruf in `last_used` ein Unix-Zeitstempel und in `last_ip` die Adresse des Aufrufers; nie genutzte Einträge bleiben leer. Ein Eintrag, der seit Monaten nicht verwendet wurde, gehört gelöscht. Eine unbekannte IP-Adresse ist ein Grund, das Passwort sofort zu widerrufen.

Einzelne Passwörter widerrufen Sie im Profil mit „Widerrufen“, alle eines Benutzers mit „Alle Anwendungspasswörter widerrufen“. Per WP-CLI:

```bash
$ wp user application-password delete admin UUID
$ wp user application-password delete admin --all
```

Im Test meldete der zweite Befehl „Success: Deleted all application passwords.“. Planen Sie die Durchsicht fest ein, zum Beispiel monatlich zusammen mit den Updates. Wer diese wiederkehrenden Aufgaben nicht selbst im Kalender halten möchte, kann sie abgeben: Die [WordPress-Wartung von wordpressupdate.de](https://wordpressupdate.de/?utm_source=s-edv.com&utm_medium=artikel&utm_campaign=41) übernimmt Updates von WordPress, Plugins und Themes innerhalb von 48 Stunden, wöchentliche Backups auf externen Speicher sowie Einrichtung und Wartung der Firewall.

> **Prüfen:** `wp user application-password list admin --format=count` gibt nur die Zahl der Einträge aus, die tatsächlich gebraucht werden. Nach dem Löschen aller Einträge lautete die Ausgabe im Test 0.

## Schritt 6: Anwendungspasswörter auf Rollen beschränken

Standardmäßig darf jeder Benutzer eigene Anwendungspasswörter anlegen. Brauchen nur Administratoren diese Funktion, schränken Sie sie mit einem zweiten Must-Use-Plugin ein, zum Beispiel `app-pw-nur-admins.php`:

Datei: `app-pw-nur-admins.php`

```php
<?php
/* Plugin Name: Anwendungspasswörter nur für Administratoren */
add_filter( 'wp_is_application_passwords_available_for_user', function ( $available, $user ) {
	return $available && user_can( $user, 'manage_options' );
}, 10, 2 );
```

Im Test lieferte `wp_is_application_passwords_available_for_user()` danach für den Administrator `true`, für einen Redakteur `false`. Wichtig: WP-CLI legte für den Redakteur trotzdem noch ein Passwort an, die Anmeldung damit über die REST-API scheiterte aber mit Status 401. Der Filter blockiert also die Nutzung, räumt aber keine bestehenden Einträge auf. Widerrufen Sie vorhandene Passwörter der betroffenen Rollen deshalb zusätzlich.

Ganz abschalten lässt sich die Funktion über den Filter `wp_is_application_passwords_available` mit Rückgabewert `false`. Tun Sie das nur, wenn sicher keine Anwendung sie nutzt; die Liste aus Schritt 5 zeigt das.

> **Prüfen:** Ein Redakteur sieht unter **Benutzer → Profil** keinen Abschnitt „Anwendungspasswörter“ mehr, und ein REST-Aufruf mit einem vorhandenen Redakteurs-Passwort liefert 401.

## Typische Fehler

| Symptom | Ursache | Lösung |
| --- | --- | --- |
| Abschnitt „Anwendungspasswörter“ fehlt im Profil | Website ohne HTTPS oder Funktion per Filter abgeschaltet | HTTPS einrichten, Must-Use-Plugins und Sicherheits-Plugins prüfen |
| REST-Aufruf liefert 401 `rest_not_logged_in` | Falsches Passwort, falscher Benutzername oder Rolle gesperrt | Benutzername des Kontos verwenden, zu dem das Passwort gehört |
| Anwendungspasswort funktioniert nicht im Login-Formular | Gilt nur für API-Zugriffe | Normales Passwort verwenden |
| Kurzes Passwort per WP-CLI akzeptiert | Die Hooks gelten nur für Backend und Passwort-Reset | Zugang zu WP-CLI auf Administratoren beschränken |
| Website nach Upload des Must-Use-Plugins nicht erreichbar | Syntaxfehler in der Datei | Datei per SFTP entfernen, mit `php -l` prüfen |

## Häufige Fragen

### Brauche ich zusätzlich ein Sicherheits-Plugin für Passwort-Richtlinien?

Für eine Mindestlänge nicht. Plugins lohnen sich, wenn Sie weitere Funktionen wie Zwei-Faktor-Anmeldung oder Sperren nach Fehlversuchen ohnehin brauchen. Die Zwei-Faktor-Anmeldung beschreibt die Anleitung [WordPress-Login mit Zwei-Faktor-Authentifizierung absichern](https://s-edv.com/anleitungen/wordpress-login-zwei-faktor-authentifizierung-einrichten).

### Umgehen Anwendungspasswörter die Zwei-Faktor-Anmeldung?

Ja, das ist ihr Zweck: Programme können keinen zweiten Faktor eingeben. Umso wichtiger sind eigene Passwörter je Anwendung, minimale Rechte und regelmäßiger Widerruf. XML-RPC akzeptiert Anwendungspasswörter ebenfalls; brauchen Sie es nicht, schalten Sie es ab, siehe [XML-RPC deaktivieren oder einschränken](https://s-edv.com/anleitungen/wordpress-xml-rpc-deaktivieren-einschraenken).

### Was tun, wenn ein Mitarbeiter das Unternehmen verlässt?

Konto entfernen und die Inhalte einem anderen Benutzer zuweisen, etwa mit `wp user delete ID --reassign=ANDERE_ID`. Damit verschwinden auch dessen Anwendungspasswörter. Kannte die Person gemeinsam genutzte Zugänge, ändern Sie diese ebenfalls.

## Fazit

Mit einer schriftlichen Richtlinie, einem kurzen Must-Use-Plugin für die Mindestlänge und einer monatlichen Durchsicht der Anwendungspasswörter schließen Sie zwei häufig übersehene Lücken ohne zusätzliches Plugin. Entscheidend ist die Regelmäßigkeit: Anwendungspasswörter, die niemand mehr braucht, müssen weg. Wenn Sie diese Pflege zusammen mit Updates und Backups abgeben möchten, übernimmt das die [WordPress-Wartung von Marcel Schönfelder](https://wordpressupdate.de/?utm_source=s-edv.com&utm_medium=fazit&utm_campaign=41).

## Weiterführende Anleitungen und Quellen

- [WordPress-Login mit Zwei-Faktor-Authentifizierung absichern](https://s-edv.com/anleitungen/wordpress-login-zwei-faktor-authentifizierung-einrichten)
- [XML-RPC in WordPress deaktivieren oder einschränken](https://s-edv.com/anleitungen/wordpress-xml-rpc-deaktivieren-einschraenken)
- [Gehackte WordPress-Seite erkennen: Anzeichen prüfen und erste Schritte](https://s-edv.com/anleitungen/wordpress-gehackt-erkennen-anzeichen-erste-schritte)
- [Make WordPress Core: Application Passwords Integration Guide](https://make.wordpress.org/core/2020/11/05/application-passwords-integration-guide/)
- [WP-CLI-Handbuch: wp user application-password](https://developer.wordpress.org/cli/commands/user/application-password/)
- [Make WordPress Core: WordPress 6.8 will use bcrypt for password hashing](https://make.wordpress.org/core/2025/02/17/wordpress-6-8-will-use-bcrypt-for-password-hashing/)
