← Wszystkie porady

Brak wymuszenia SSL w panelu administracyjnym

Co to oznacza

Jeśli stała FORCE_SSL_ADMIN nie jest ustawiona na true w konfiguracji Twojego WordPressa, panel administracyjny (/wp-admin/) i strona logowania (/wp-login.php) mogą być dostępne przez nieszyfrowane połączenie HTTP. Sprawdź to w pliku wp-config.php.

Nawet jeśli strona posiada certyfikat SSL i działa przez HTTPS, bez tej stałej WordPress nie wymusza szyfrowania dla sesji administracyjnych.

Jakie jest ryzyko

  • Przechwycenie danych logowania — login i hasło przesyłane przez HTTP lecą jako czysty tekst. W sieci publicznej (kawiarnia, lotnisko, coworking) atakujący może je przechwycić za pomocą prostego sniffera.
  • Kradzież sesji — ciasteczka sesji administratora przesyłane bez szyfrowania mogą być przechwycone i użyte do przejęcia aktywnej sesji (atak session hijacking).
  • Atak man-in-the-middle — atakujący może modyfikować treść strony logowania w locie, np. wstrzyknąć keylogger lub przekierować na fałszywą stronę.

Jak to naprawić

  1. Upewnij się, że certyfikat SSL jest aktywny na serwerze i strona działa przez HTTPS.
  2. Dodaj stałą do wp-config.php (przed linią /* That's all, stop editing! */):
    define('FORCE_SSL_ADMIN', true);
    
  3. Wymuś HTTPS na całej stronie — skonfiguruj przekierowanie HTTP → HTTPS na poziomie serwera:
    # .htaccess (Apache)
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    
  4. Zaktualizuj adresy w WordPress — w Ustawienia → Ogólne upewnij się, że oba adresy (WordPress i strony) zaczynają się od https://.