Beschreibung
Das Plugin Two Factor fügt deiner WordPress-Anmeldung eine zusätzliche Sicherheitsschicht hinzu, indem es vom Benutzer zusätzlich zum Passwort eine weitere Form der Authentifizierung verlangt. Das schützt vor unberechtigten Zugriffen sogar dann, wenn Passwörter kompromittiert wurden.
Einrichtungs-Anleitungen
Wichtig: Jeder Benutzer muss seine eigenen Einstellungen für die Zwei-Faktor-Authentifizierung festlegen. Es gibt keine Website-weiten Einstellungen für dieses Plugin.
Für individuelle Benutzer
- Zu deinem Profil navigieren: Gehe im WordPress-Admin zu „Benutzer“ „Profil“
- Two-Factor-Optionen finden: Scrolle runter bis zum Abschnitt „Two-Factor-Optionen“
- Choose your methods: Enable one or more authentication providers (noting a site admin may have hidden one or more so what is available could vary):
- Authenticator App (TOTP) – Nutze Apps wie Google Authenticator, Authy oder 1Password
- Email Codes – Erhalte Einmal-Codes via E-Mail
- FIDO-U2F-Sicherheitschlüssel – Benutze physische Sicherheitsschlüssel (erfordert HTTPS)
- Backup-Codes – Erzeuge Einmal-Backup-Codes für Notfälle
- Dummy-Methode – nur zu Testzwecken (erfordert WP_DEBUG)
- Jede Methode konfigurieren: Folge den Einrichtungs-Anleitungen für jeden aktivierten Anbieter
- Primäre Methode wählen: Wähle, welche Methode du als Standard-Authentifizierung verwenden möchtest
- Änderungen speichern: Klicke auf „Profil aktualisieren“, um deine Einstellungen zu speichern
Für Website-Administratoren
- Keine globalen Einstellungen: Dieses Plugin arbeitet nur auf Benutzerebene. Mehr dazu hier: GH#249.
- Benutzerverwaltung: Administratoren können 2FA für andere Benutzer konfigurieren, indem die deren Profile bearbeiten
- Sicherheits-Empfehlungen: Benutzer sollten Backup-Methoden einrichten, damit sie nicht aus ihrem Konto ausgesperrt werden
Verfügbare Authentifizierungs-Methoden
Authenticator-App (TOTP) – empfohlen
- Sicherheit: Hoch – Zeitbasierte Einmalpasswörter
- Einrichtung: QR-Code mit Authenticator-App scannen
- Kompatibilität: Funktioniert mit Google Authenticator, Authy, 1Password und anderen TOTP-Apps
- Am besten für: die meisten Benutzer, bietet exzellente Sicherheit und gute Benutzerfreundlichkeit
Backup-Codes – empfohlen
- Sicherheit: Mittel – Codes einmal nutzbar
- Einrichtung: 10 Backup-Codes für den Notfall-Zugriff erzeugen
- Kompatibilität: Funktioniert überall, keine spezielle Hardware erforderlich
- Am besten für: Notfall-Zugriff, wenn andere Verfahren nicht verfügbar sind
E-Mail-Codes
- Sicherheit: Mittel – Einmal-Codes werden via E-Mail verschickt
- Einrichtung: Automatisch – verwendet deine WordPress-E-Mail-Adresse
- Kompatibilität: Funktioniert mit jedem E-Mail-fähigen Gerät
- Am besten für: Benutzer, die E-Mail-basierte Authentifizierung bevorzugen
FIDO-U2F-Sicherheitsschlüssel
- Sicherheit: Hoch – hardwarebasierte Authentifizierung
- Einrichtung: Physische Sicherheitsschlüssel registrieren (USB, NFC oder Bluetooth)
- Voraussetzungen: HTTPS-Verbindung erforderlich, kompatible Browser benötigt
- Browser-Support: Chrome, Firefox, Edge (je nach Schlüsseltyp)
- Am besten für: Benutzer mit Sicherheitsschlüsseln, die höchste Sicherheit wollen
Dummy-Methode
- Sicherheit: Keine – immer erfolgreich
- Einrichtung: nur verfügbar, wenn WP_DEBUG aktiviert ist
- Zweck: nur Testen und Entwicklung
- Am besten für: Entwickler, die das Plugin testen
Wichtige Hinweis
HTTPS-Anforderung
- FIDO-U2F-Sicherheitsschlüssel erfordern eine HTTPS-Verbindung
- Andere Methoden funktionieren auf sowohl HTTP- als auch HTTPS-Websites
Browser-Kompatibilität
- FIDO U2F erfordert einen kompatiblen Browser und funktioniert möglicherweise nicht auf allen Geräten
- TOTP und E-Mail-Methoden funktionieren mit allen Geräten und Browsern
Kontowiederherstellung
- Aktiviere immer Backup-Codes, damit du nicht aus deinem Konto ausgesperrt wirst
- Wenn du Zugriff auf alle Authentifizierungs-Methoden verlierst, wende dich an den Administrator deiner Website
Bewährte Sicherheitspraktiken
- Verwende möglichst mehrere Authentifizierungs-Methoden
- Verwahre Backup-Codes an einem sicheren Ort
- Prüfe und aktualisiere deine Authentifizierungseinstellungen regelmäßig
Für weitere Information zur Zwei-Faktor-Authentifizierung schau dir den WordPress Advanced Administration Security Guide an.
Weitergehende Informationen finden sich in diesem Beitrag.
Actions und Filter
Nachfolgend findet sich hier eine Auflistung von Action- und Filter-Hooks, die das Plugin anbietet:
- Der
two_factor_providers-Filter hat Vorrang gegenüber anderen vorhandenen Zwei-Faktor-Authentifizierungs-Methoden wie E-Mail und zeitbasierten Einmal-Passwörtern. Array-Werte können PHP-Klassennamen der jeweiligen Zwei-Faktor-Methoden sein. - Der Filter
two_factor_providers_for_usersetzt die verfügbaren Zwei-Faktor-Anbieter für einen bestimmten Benutzer zurück. Array-Werte sind Instanzen von Anbieterklassen und das BenutzerobjektWP_Userist als zweites Argument verfügbar. - Der
two_factor_enabled_providers_for_user-Filter überschreibt die Authentifizierungsmethoden, die für einen Benutzer aktiviert sind. Das erste Argument ist ein Array der Klassennamen erlaubter Authentifizierungsmethoden, während das zweite Argument die Nutzer-ID ist. - Die
two_factor_user_authenticated-Aktion empfängt das eingeloggteWP_User-Objekt als erstes Argument, um den angemeldeten Benutzer direkt nach dem Authentifizierung-Workflow zu ermitteln. - Der Filter
two_factor_user_api_login_enablebeschränkt die Authentifizierung für REST-API und XML-RPC nur auf Anwendungskennwörter. Gibt die Benutzer-ID als zweites Argument an. - Der Filter
two_factor_token_ttlüberschreibt die Zeitangabe in Sekunden, in der ein E-Mai-Token nach Erzeugung gültig ist. Akzeptiert die Zeit (in Sekunden) und die ID desWP_User-Objekts, das authentifiziert wird. - Der Filter
two_factor_email_token_lengthüberschreibt die 8-Zeichen-Vorgabe für E-Mail-Tokens. - Der Filter
two_factor_backup_code_lengthüberschreibt die 8-Zeichen-Vorgabe für Backup-Codes. Liefert denWP_Userdes verknüpften Benutzers als zweites Argument. - Der Filter
two_factor_rest_api_can_edit_userüberschreibt, ob sich die Zwei-Faktor-Einstellungen eines Benutzers über die REST-API bearbeiten lassen. Das erste Argument ist das aktuelle Boolesche$can_edit, das zweite Argument ist die Benutzer-ID. - Die Aktion
two_factor_before_authentication_promptempfängt das Provider-Objekt und wird vor der Eingabeaufforderung im Authentifizierungsformular ausgelöst. - Die Aktion
two_factor_after_authentication_promptempfängt das Provider-Objekt und wird nach der im Authentifizierungs-Eingabeformular angezeigten Eingabeaufforderung ausgelöst. - Die Aktion
two_factor_after_authentication_inputempfängt das Provider-Objekt und wird nach der Eingabe im Authentifizierungsformular ausgelöst (wenn das Formular keine Eingabe enthält, wird die Aktion unmittelbar nach der Aktiontwo_factor_after_authentication_promptausgelöst).
Screenshots

Zwei-Faktor-Optionen im Benutzerprofil – zeigt den zentralen Konfigurationsbereich, wo Benutzer verschiedene Authentifizierungs-Methoden aktivieren können. 
Abschnitt U2F-Sicherheitsschlüssel im Benutzerprofil – zeigt die Oberfläche der Sicherheitsschlüsselverwaltung fürs Registrieren und Verwalten von FIDO-U2F-Geräten. 
E-Mail-Code-Authentifizierung während der WordPress-Anmeldung – zeigt den Bildschirm für die E-Mail-Überprüfung während der Anmeldung. 
Authenticator-App-Einrichtung (TOTP) mit QR-Code – demonstriert das Erzeugen des QR-Codes und das manuelle Eingeben des Schlüssels für die TOTP-Einrichtung. 
Erzeugung und Verwaltung von Backup-Codes – zeigt die Oberfläche zum Erzeugen und Verwalten von Notfall-Zugriffs-Codes.
FAQ
-
Welche PHP- und WordPress-Versionen unterstützt das Two-Factor-Plugin?
-
Dieses Plugin funktioniert mit den letzten beiden Hauptversionen von WordPress und der Mindestversion von PHP, die von diesen WordPress-Versionen unterstützt wird.
-
Wie kann ich Rückmeldung geben oder Hilfe bei einem Fehler erhalten?
-
Der beste Ort, um Fehler zu melden, neue Funktionen vorzuschlagen oder für sonstige Rückmeldungen ist die Two-Factor-Problemseite bei GitHub. Bevor du ein neues Problem meldest, durchsuche bitte die bisherigen Themen danach, ob nicht jemand anderes bereits das gleiche Feedback hinterlassen hat.
-
Wo kann ich Sicherheitslücken melden?
-
Die Plugin-Mitwirkenden und die WordPress-Community nehmen Sicherheitslücken ernst. Wir schätzen deine Bemühungen, deine Entdeckungen verantwortungsvoll zu veröffentlichen und werden uns bemühen, deine Beiträge zu würdigen.
Um ein Sicherheitsproblem zu melden, besuche bitte das WordPress-HackerOne-Programm.
-
Warum hat dieses Plugin keine Website-weiten Einstellungen?
-
Das Plugin funktioniert auf Benutzerbasis, das heißt jeder Benutzer kann seine bevorzugte Authentifizierungsmethode wählen. Dieser Ansatz ermöglicht maximale Flexibilität und Sicherheit. Website-Administratoren können weiterhin für andere Benutzer 2FA konfigurieren, indem sie deren Profile bearbeiten. Weitere Informationen findest du unter issue #437.
-
Was, wenn ich den Zugriff auf all meine Authentifizierungsmethoden verliere?
-
Wenn du Backup-Codes aktiviert hast, kannst du einen davon verwenden, um wieder Zugriff zu erhalten. Wenn du keine Backup-Codes hast oder alle aufgebraucht sind, musst du den Administrator deiner Website kontaktieren, um dein Konto zurückzusetzen. Deswegen ist es wichtig, Backup-Code stets zu aktivieren und die Codes an einem sicheren Ort aufzubewahren.
-
Kann ich dieses Plugin mit WebAuthn benutzen?
-
Das Plugin unterstützt aktuell FIDO U2F, den Vorgänger von WebAuthn. Für volle WebAuthn-Unterstützung schau dir zusätzliche Plugins an, die diese Funktion erweitern. Die aktuelle U2F-Umsetzung erfordert HTTPS und hat Probleme bei der Browser-Kompatibilität.
-
Gibt es eine empfohlene Methode, um Passkeys oder Hardware-Sicherheitsschlüssel mit Two Factor zu verwenden?
-
Ja. Für Passkeys und Hardware-Sicherheitsschlüssel kannst du den Zwei-Faktor-Anbieter WebAuthn Plugin: https://wordpress.org/plugins/two-factor-provider-webauthn/ installieren. Dieser integriert sich direkt mit Two-Factor und fügt WebAuthn-basierte Authentifizierung als weitere Zwei-Faktor-Option für Benutzer hinzu.
Rezensionen
Mitwirkende und Entwickler
„Two Factor“ ist Open-Source-Software. Folgende Menschen haben an diesem Plugin mitgewirkt:
Mitwirkende„Two Factor“ wurde in 38 Sprachen übersetzt. Danke an die Übersetzer für ihre Mitwirkung.
Übersetze „Two Factor“ in deine Sprache.
Interessiert an der Entwicklung?
Durchstöbere den Code, sieh dir das SVN-Repository an oder abonniere das Entwicklungsprotokoll per RSS.
Änderungsprotokoll
0.15.0 – 2026-02-13
- Breaking Changes: Trigger two-factor flow only when expected by @kasparsd in #660 and #793.
- New Features: Include user IP address and contextual warning in two-factor code emails by @todeveni in #728
- New Features: Optimize email text for TOTP by @masteradhoc in #789
- New Features: Add „Settings“ action link to plugin list for quick access to profile by @hardikRathi in #740
- New Features: Additional form hooks by @eric-michel in #742
- New Features: Full RFC6238 Compatibility by @ericmann in #656
- New Features: Consistent user experience for TOTP setup by @kasparsd in #792
- Documentation:
@sincedocs by @masteradhoc in #781 - Documentation: Update user and admin docs, prepare for more screenshots by @jeffpaul in #701
- Documentation: Add changelog & credits, update release notes by @jeffpaul in #696
- Documentation: Clear readme.txt by @masteradhoc in #785
- Documentation: Add date and time information above TOTP setup instructions by @masteradhoc in #772
- Documentation: Clarify TOTP setup instructions by @masteradhoc in #763
- Documentation: Update RELEASING.md by @jeffpaul in #787
- Development Updates: Pause deploys to SVN trunk for merges to
masterby @kasparsd in #738 - Development Updates: Fix CI checks for PHP compatability by @kasparsd in #739
- Development Updates: Fix Playground refs by @kasparsd in #744
- Development Updates: Persist existing translations when introducing new helper text in emails by @kasparsd in #745
- Development Updates: Fix
missing_direct_file_access_protectionby @masteradhoc in #760 - Development Updates: Fix
mismatched_plugin_nameby @masteradhoc in #754 - Development Updates: Introduce Props Bot workflow by @jeffpaul in #749
- Development Updates: Plugin Check: Fix Missing $domain parameter by @masteradhoc in #753
- Development Updates: Tests: Update to supported WP version 6.8 by @masteradhoc in #770
- Development Updates: Fix PHP 8.5 deprecated message by @masteradhoc in #762
- Development Updates: Exclude 7.2 and 7.3 checks against trunk by @masteradhoc in #769
- Development Updates: Fix Plugin Check errors:
MissingTranslatorsComment&MissingSingularPlaceholderby @masteradhoc in #758 - Development Updates: Add PHP 8.5 tests for latest and trunk version of WP by @masteradhoc in #771
- Development Updates: Add
phpcs:ignorefor falsepositives by @masteradhoc in #777 - Development Updates: Fix(totp):
otpauthlink in QR code URL by @sjinks in #784 - Development Updates: Update deploy.yml by @masteradhoc in #773
- Development Updates: Update required WordPress Version by @masteradhoc in #765
- Development Updates: Fix: ensure execution stops after redirects by @sjinks in #786
- Development Updates: Fix
WordPress.Security.EscapeOutput.OutputNotEscapederrors by @masteradhoc in #776 - Dependency Updates: Bump qs and express by @dependabot[bot] in #746
- Dependency Updates: Bump lodash from 4.17.21 to 4.17.23 by @dependabot[bot] in #750
- Dependency Updates: Bump lodash-es from 4.17.21 to 4.17.23 by @dependabot[bot] in #748
- Dependency Updates: Bump phpunit/phpunit from 8.5.44 to 8.5.52 by @dependabot[bot] in #755
- Dependency Updates: Bump symfony/process from 5.4.47 to 5.4.51 by @dependabot[bot] in #756
- Dependency Updates: Bump qs and body-parser by @dependabot[bot] in #782
- Dependency Updates: Bump webpack from 5.101.3 to 5.105.0 by @dependabot[bot] in #780
0.14.2 – 2025-12-11
- New Features: Add filter for rest_api_can_edit_user_and_update_two_factor_options by @gutobenn in #689
- Development Updates: Remove Coveralls tooling and add inline coverage report by @kasparsd in #717
- Development Updates: Update blueprint path to pull from main branch instead of a deleted f… by @georgestephanis in #719
- Development Updates: Fix blueprint and wporg asset deploys by @kasparsd in #734
- Development Updates: Upload release only on tag releases by @kasparsd in #735
- Development Updates: Bump playwright and @playwright/test by @dependabot[bot] in #721
- Development Updates: Bump tar-fs from 3.1.0 to 3.1.1 by @dependabot[bot] in #720
- Development Updates: Bump node-forge from 1.3.1 to 1.3.2 by @dependabot[bot] in #724
- Development Updates: Bump js-yaml by @dependabot[bot] in #725
- Development Updates: Mark as tested with the latest WP core version by @kasparsd in #730
0.14.1 – 2025-09-05
- Don’t URI encode the TOTP url for display. by @dd32 in #711
- Removed the duplicate Security.md by @slvignesh05 in #712
- Fixed linting issues by @sudar in #707
- Update development dependencies and fix failing QR unit test by @kasparsd in #714
- Trigger checkbox js change event by @gedeminas in #688
0.14.0 – 2025-07-03
- Features: Enable Application Passwords for REST API and XML-RPC authentication (by default) by @joostdekeijzer in #697 and #698. Previously this required two_factor_user_api_login_enable filter to be set to true which is now the default during application password auth. XML-RPC login is still disabled for regular user passwords.
- Features: Label recommended methods to simplify the configuration by @kasparsd in #676 and #675
- Documentation: Add WP.org plugin demo by @kasparsd in #667
- Documentation: Document supported versions of WP core and PHP by @jeffpaul in #695
- Documentation: Document the release process by @jeffpaul in #684
- Tooling: Remove duplicate WP.org screenshots and graphics from SVN trunk by @jeffpaul in #683
