Wszystkie artykuły

Logowanie dwuskładnikowe w WordPressie: kod z aplikacji, klucz dostępu i jak nie zablokować sobie konta

Jak działa drugi krok logowania w WordPressie, czym kod z aplikacji różni się od klucza dostępu (passkey), jak włączyć to za darmo i jak przygotować się na zgubiony telefon.

Radek, ENSOMEDIAOpublikowano 5 min czytaniaIn EnglishAuf DeutschEn españolEn français中文بالعربية

WordPress przy logowaniu pyta tylko o nazwę użytkownika i hasło. Logowanie dwuskładnikowe dodaje drugi krok: po haśle trzeba jeszcze podać kod z aplikacji w telefonie albo potwierdzić logowanie kluczem dostępu (passkey). Samo hasło przestaje wtedy otwierać panel. Da się to włączyć za darmo, bez płatnej wtyczki, a całość zajmuje kilka minut na konto.

Poniżej: jakie są rodzaje drugiego kroku, jak je ocenić, jak wdrożyć to na stronie z kilkoma użytkownikami i co przygotować, zanim ktoś zgubi telefon.

Po co drugi krok, skoro hasło jest mocne

Mocne hasło chroni przed zgadywaniem. Nie chroni w trzech typowych sytuacjach:

  • hasło wyciekło z innego serwisu, w którym użyto tego samego hasła,
  • ktoś wpisał je na podrobionej stronie logowania, do której prowadził link w mailu,
  • hasło zostało zapisane w przeglądarce na komputerze, z którego korzysta więcej osób.

W każdej z nich ktoś zna Twoje hasło. Drugi krok sprawia, że samo hasło już nie wystarcza do wejścia do kokpitu.

Trzy rodzaje drugiego kroku

Kod z aplikacji uwierzytelniającej (TOTP). Podczas konfiguracji skanujesz kod QR w aplikacji na telefonie. Od tej chwili aplikacja pokazuje sześciocyfrowy kod, który zmienia się co 30 sekund. Telefon nie potrzebuje do tego internetu, bo kod jest liczony z zapisanego sekretu i aktualnego czasu. Tę metodę obsługuje każda popularna aplikacja uwierzytelniająca.

Słaby punkt: kod można przepisać na fałszywą stronę logowania tak samo jak hasło. Oszust, który działa szybko, użyje go, zanim wygaśnie.

Kod wysyłany mailem. Wygodny, bo nie wymaga aplikacji. Daje jednak tyle, ile zabezpieczenie skrzynki pocztowej. Jeśli skrzynka ma to samo hasło co WordPress, drugi krok niewiele zmienia.

Klucz dostępu (passkey, standard WebAuthn). Zamiast kodu potwierdzasz logowanie odciskiem palca, twarzą, kodem PIN telefonu albo kluczem sprzętowym USB. Przeglądarka wiąże klucz z domeną strony, na której go utworzono. Na podrobionej stronie pod inną domeną przeglądarka po prostu nie poda klucza, więc oszust nie ma czego przechwycić. Klucze dostępu wymagają strony działającej przez HTTPS.

Czy da się to zrobić bez płatnej wtyczki

Tak. Dokumentacja WordPress.org dla administratorów (Advanced Administration, stan z 14 października 2026) odsyła po logowanie dwuskładnikowe do wtyczek z katalogu, bo sam WordPress go nie ma. W katalogu jest kilka darmowych wtyczek, które to robią. Przykład: 19 października 2026 strona wtyczki Two Factor (autor WordPress.org, wersja 0.17.0) wymieniała kody z aplikacji, kody mailem i kody zapasowe, a obsługę kluczy dostępu przez WebAuthn opisywała jako osobny dodatek.

Wybierając wtyczkę, sprawdź w jej opisie cztery rzeczy:

  1. Jakie metody drugiego kroku obsługuje i czy jest wśród nich aplikacja.
  2. Czy daje kody odzyskiwania na wypadek zgubionego telefonu.
  3. Czy administrator z dostępem do serwera może wyłączyć drugi krok dla konta, które się zablokowało.
  4. Czy wymusza drugi krok dla wybranych ról.

Jak wdrożyć to tak, żeby nikt nie został za drzwiami

  1. Zacznij od własnego konta. Dobra wtyczka zaczyna wymagać kodu dopiero wtedy, gdy wpiszesz pierwszy kod z aplikacji przy konfiguracji. To potwierdzenie pokazuje, że aplikacja liczy właściwe kody, zanim wtyczka zacznie ich wymagać.
  2. Zapisz kody odzyskiwania poza telefonem. Na przykład w menedżerze haseł. Kody trzymane w tym samym telefonie co aplikacja przepadną razem z nim.
  3. Ustal plan na zablokowane konto. Sprawdź, kto ma dostęp do serwera (Ty, programista, hosting) i jak tam wyłącza się drugi krok dla jednego konta. Zapisz to, zanim będzie potrzebne.
  4. Wymagaj drugiego kroku od ról z uprawnieniami. Administrator, redaktor i kierownik sklepu mogą zmienić stronę albo zobaczyć dane klientów. Daj im kilka dni na konfigurację i uprzedź mailem.
  5. Przenieś aplikacje na hasła aplikacji. Aplikacja mobilna WordPressa albo narzędzie, które publikuje wpisy przez REST API, nie pokażą ekranu z kodem. WordPress ma do tego hasła aplikacji: w profilu użytkownika tworzysz osobne hasło dla jednego narzędzia i w każdej chwili je unieważniasz.
  6. Zamknij stare sesje. WordPress trzyma zalogowanie przez dwa dni, a z zaznaczonym „Zapamiętaj mnie” przez 14 dni. Po włączeniu drugiego kroku wyloguj konto na pozostałych urządzeniach, żeby stare zalogowania nie omijały nowej zasady.

Na co uważać

  • Czas w telefonie. Kod z aplikacji zależy od zegara. Jeśli kody nagle przestają pasować, sprawdź, czy telefon ustawia czas automatycznie.
  • Zmiana domeny. Klucz dostępu działa dla domeny, na której go utworzono. Po przeniesieniu strony pod nowy adres trzeba dodać nowy klucz, więc zostaw sobie aplikację albo kody odzyskiwania jako drugą drogę.
  • Odejście współpracownika. Usuń jego konto albo odbierz mu rolę. Wyłączenie telefonu tej osoby nie zamyka jej konta.
  • Drugi krok chroni tylko logowanie. Luka w nieaktualnej wtyczce nie wymaga logowania. Aktualizacje nadal są potrzebne, o czym więcej w tekście o nieaktualnych wtyczkach.

Jak robi to Ensomedia Security

Ensomedia Security to darmowa wtyczka z katalogu WordPress.org, którą zrobiłem dla ShieldWave. Wszystko w niej działa bez konta ShieldWave. Fakty z jej opisu i kodu:

  • drugi krok to kod z aplikacji uwierzytelniającej (TOTP), a przy konfiguracji dostajesz dziesięć kodów odzyskiwania,
  • polecenie WP-CLI wp shieldwave two-factor disable <user> wyłącza drugi krok dla jednego konta, więc nikt nie zostaje zablokowany na stałe,
  • aplikacje logują się hasłem aplikacji,
  • możesz wymagać logowania dwuskładnikowego dla wybranych ról i dać im od 0 do 30 dni na konfigurację (domyślnie 7),
  • klucze dostępu (WebAuthn) działają jako drugi krok po haśle, hasło nadal jest potrzebne. Wymagają HTTPS i rozszerzenia OpenSSL w PHP,
  • podrobiona strona logowania dostanie najwyżej hasło, a nigdy drugi krok, bo przeglądarka wiąże klucz dostępu z domeną strony,
  • dodanie albo usunięcie klucza dostępu wymaga najpierw hasła albo aktualnego kodu, a właściciel konta dostaje maila, gdy ktoś doda nowy klucz,
  • w sekcji sesji widzisz, gdzie konto jest zalogowane, możesz zakończyć wszystkie inne sesje albo wylogować każdego użytkownika i ustawić, jak długo trwa sesja administratora,
  • ochrona logowania ogranicza nieudane próby z jednego adresu (domyślnie 5, potem przerwa) i na jedną nazwę użytkownika ze wszystkich adresów (domyślnie 20 na godzinę). Blokady są tymczasowe, a zaufanych adresów nie blokuje nigdy.

Wtyczka nie jest pełną zaporą aplikacyjną i nie usuwa złośliwego kodu z plików. Szczegóły i to, co wysyła każda z opcjonalnych usług, opisuje strona wtyczki (po angielsku). Instrukcję ekran po ekranie znajdziesz w tekście o tej wtyczce.

Lista na dziś

  1. Włącz drugi krok na swoim koncie administratora i zapisz kody odzyskiwania w menedżerze haseł.
  2. Sprawdź, jak wyłączysz go dla jednego konta, gdy ktoś zgubi telefon.
  3. Wymagaj go od ról, które mogą zmieniać stronę, z kilkoma dniami na konfigurację.
  4. Narzędziom i aplikacjom daj osobne hasła aplikacji.
  5. Wyloguj konta z urządzeń, z których już nie korzystasz.

Sprawdź swoją stronę z zewnątrz. Wpisz adres na shieldwave.io. Test trwa około 90 sekund i nie wymaga hasła ani wtyczki.