Authentifizierung, Sessions und Zwei-Faktor-Anmeldung
Diese Seite richtet sich an Ingenieure, die die Anmeldung für eine Website entwerfen, Maschinen über die API anbinden oder die Kontosicherheit prüfen. Sie behandelt Menschen (Passwörter, zwei Faktoren, Sessions) und Maschinen (OAuth-Tokens, API-Schlüssel).
Inhalt
- Passwörter
- Sessions
- Zwei-Faktor-Anmeldung
- Maschinen: OAuth und API-Schlüssel
- Login-Handler
- Zu treffende Entscheidungen
Passwörter
| Aspekt | Mitgeliefertes Verhalten | Einstellung oder Quelle |
|---|---|---|
| Speicherung | PHPs password_hash() (heute bcrypt), ältere Hashes werden bei der Anmeldung aktualisiert | site.ini [UserSettings] HashType=php_default |
| Mindestlänge | 10 | [UserSettings] MinPasswordLength |
| Bekannte Passwörter | überall abgelehnt, wo ein Passwort gesetzt wird, mit einfachen Varianten | expWeakPasswordList (Schwache Passwörter und Gültigkeit von Rücksetzschlüsseln) |
| Link "Passwort vergessen" | läuft ab | dieselbe Seite |
| Sperre nach fehlgeschlagenen Anmeldungen | aus (0), bis Sie eine Zahl setzen | [UserSettings] MaxNumberOfFailedLogin |
| Andere Sessions bei Passwortänderung | beendet | [PasswordSettings] EndOtherSessions=enabled |
Unbekannte Logins und falsche Passwörter kosten gleich viel Zeit, und Antworten auf "Passwort vergessen" sind einheitlich,
sodass ein Angreifer keine Konten auflisten kann (Sicherheitsstandards). Seit August 2026
kann sich ein Konto ohne Zeile in ezuser_setting nicht anmelden: Die Anmeldung schlägt sicher fehl.
Sessions
site.ini [Session] SessionTimeout(Standard 360 Tage) beendet eine Session nach ihrer letzten Verwendung.[Session] Handlerleer (der Standard) speichert Sessions in PHPs eigenem Speicher;ezpSessionHandlerDBspeichert sie in der Tabelleezsession, die mehrere Webknoten teilen können und die die Administration auflisten und beenden kann (Sessions).- Session-Cookies sind seit September 2026 standardmäßig
HttpOnlyundSameSiteund über HTTPSSecure(CookieSecure=auto); die Session-ID wird bei der Anmeldung neu erzeugt. - Unter Velocity wird
$_SESSIONnach jeder Anfrage geschrieben und geleert.
Zwei-Faktor-Anmeldung
Die Erweiterung sevenx_authentication_2fa, die composer.json verlangt und die Installer aktivieren, fügt nach dem
Passwort einen zweiten Schritt hinzu: einen TOTP-Code aus einer Authenticator-App (RFC 6238, nur PHP-Bordmittel) oder einen
Einmalcode per E-Mail. Ein Datentyp an der Benutzerklasse speichert Methode und Geheimnis jedes Benutzers; ein Login-Handler
prüft das Passwort und schließt dann die Anmeldung ab oder leitet zur Abfrage weiter. Offene Abfragen sind JSON-Dateien
unter var/, es wird also kein Redis oder Valkey gebraucht. Dieselbe Erweiterung enthält Handler für Social Login als
Gerüste zum Anpassen (Zweistufige Anmeldung,
sevenx_authentication_2fa).
Maschinen: OAuth und API-Schlüssel
| Mechanismus | Verwendung |
|---|---|
| OAuth-2.0-Tokens | POST /api/auth/v1/oauth/token mit authorization_code oder refresh_token, für Anwendungen, die für einen Benutzer handeln (OAuth und API-Schlüssel, Richtlinie für OAuth authorize) |
| Persönliche API-Schlüssel | Authorization: Bearer expk_...; von einem Benutzer mit apikey/create erzeugt, mit Geltungsbereich, ablaufend, widerrufbar, einmal angezeigt (Persönliche API-Schlüssel) |
expservices-Tokens | entfernte Dienste und Apps (Entfernte Dienste und Apps) |
Was auch immer eine REST-Anfrage authentifiziert: Jedes Lesen und Schreiben prüft die Richtlinien des Benutzers (REST-API v1 und v2).
Login-Handler
site.ini [UserSettings] LoginHandler[] listet die Handler, die der Reihe nach versucht werden; die Zwei-Faktor-Erweiterung
fügt ihren eigenen vor standard ein. Verzeichnisdienste (LDAP und andere) werden auf dieselbe Weise eingebunden
(Standards für APIs und Protokolle).
Zu treffende Entscheidungen
- To do: Ist die Zwei-Faktor-Anmeldung für Administratoren und Redakteure Pflicht?
- To do: Ist eine Sperrzahl gesetzt, und stimmt
TrustedProxies[], sodass die echten Client-Adressen gezählt werden? - To do: Welcher Session-Handler: PHPs Speicher auf einem Knoten oder die Datenbank für mehrere Knoten und Session-Kontrolle?
- To do: Welche Maschinen erhalten API-Schlüssel, mit welchen Geltungsbereichen und Laufzeiten, und wer erneuert sie?
- To do: Werden Anmeldeereignisse überwacht (die Ereignisse
access.session.*des Audit-Trails und die Alarmregel für Brute-Force)?
Verwandte Seiten
- Sicherheitstechnik im Überblick
- eZUser und Zugriff
- Benutzerhygiene
- Freie Dokumentation: Diese Seite darf unter der GNU FDL 1.3 frei kopiert, übersetzt und verbessert werden.
Werden Sie Exponential-Partner
Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.