← Wszystkie porady

Brakujące lub domyślne klucze bezpieczeństwa WordPress

Co to oznacza

Jeśli w pliku wp-config.php Twojej strony brakuje jednego lub więcej kluczy bezpieczeństwa, lub klucze zawierają wartości domyślne z pliku wp-config-sample.php (tekst „put your unique phrase here"), sesje użytkowników nie są prawidłowo zabezpieczone.

WordPress używa 8 kluczy i soli (AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY oraz odpowiadające im salts) do szyfrowania informacji przechowywanych w ciasteczkach sesji.

Jakie jest ryzyko

  • Przewidywalne tokeny sesji — bez unikalnych kluczy ciasteczka sesji są generowane na podstawie słabych, domyślnych wartości. Atakujący może odtworzyć prawidłowy token sesji i zalogować się jako dowolny użytkownik — w tym administrator.
  • Fałszowanie sesji (session forgery) — znając klucze (a domyślne są publiczne w repozytorium WordPress), atakujący może wygenerować prawidłowe ciasteczko sesji bez znajomości hasła.
  • Brak ochrony nonce — NONCE_KEY i NONCE_SALT zabezpieczają tokeny jednorazowe chroniące przed atakami CSRF. Domyślne wartości osłabiają tę ochronę.

Jak to naprawić

  1. Wygeneruj nowe klucze — WordPress udostępnia generator: https://api.wordpress.org/secret-key/1.1/salt/
  2. Wklej do wp-config.php — zastąp istniejące definicje kluczy wygenerowanymi wartościami:
    define('AUTH_KEY',         'unikalna-losowa-wartość');
    define('SECURE_AUTH_KEY',  'unikalna-losowa-wartość');
    define('LOGGED_IN_KEY',    'unikalna-losowa-wartość');
    define('NONCE_KEY',        'unikalna-losowa-wartość');
    define('AUTH_SALT',        'unikalna-losowa-wartość');
    define('SECURE_AUTH_SALT', 'unikalna-losowa-wartość');
    define('LOGGED_IN_SALT',   'unikalna-losowa-wartość');
    define('NONCE_SALT',       'unikalna-losowa-wartość');
    
  3. Efekt uboczny — zmiana kluczy unieważnia wszystkie aktywne sesje. Wszyscy użytkownicy (w tym Ty) zostaną wylogowani i będą musieli zalogować się ponownie.
  4. Rotacja kluczy — rozważ okresową zmianę kluczy (np. co 6 miesięcy lub po podejrzeniu naruszenia) jako dodatkową warstwę bezpieczeństwa.