← Wszystkie porady

Edycja plików włączona w panelu WordPress

Co to oznacza

WordPress domyślnie udostępnia wbudowany edytor plików w panelu administracyjnym (Wygląd → Edytor plików motywu / Wtyczki → Edytor plików wtyczek). Jeśli stała DISALLOW_FILE_EDIT nie jest ustawiona na true w Twoim wp-config.php, każdy użytkownik z rolą administratora może edytować pliki PHP bezpośrednio z poziomu przeglądarki.

Jakie jest ryzyko

  • Eskalacja po przejęciu konta — jeśli atakujący uzyska dostęp do konta administratora (np. przez brute-force, phishing lub wyciek hasła), może natychmiast wstrzyknąć złośliwy kod PHP do motywu lub wtyczki. Nie potrzebuje dostępu FTP ani SSH.
  • Backdoor w jedną minutę — wystarczy dodać jedną linijkę do pliku functions.php, aby utworzyć trwały backdoor, który przetrwa zmianę hasła administratora.
  • Przypadkowe uszkodzenie strony — nawet bez złych intencji — literówka w edytorze PHP może spowodować krytyczny błąd i niedostępność całej strony.
  • Brak śladu zmian — edycje przez wbudowany edytor nie są logowane. Nie wiadomo kto, kiedy i co zmienił.

Jak to naprawić

  1. Dodaj stałą do wp-config.php:
    define('DISALLOW_FILE_EDIT', true);
    
    To ukrywa edytor plików z panelu administracyjnego.
  2. Rozważ również DISALLOW_FILE_MODS — bardziej restrykcyjna opcja, która dodatkowo blokuje instalację i aktualizację wtyczek/motywów z panelu:
    define('DISALLOW_FILE_MODS', true);
    
    Stosuj tę opcję, jeśli zarządzasz aktualizacjami przez WP-CLI, Git lub CI/CD.
  3. Zarządzaj plikami przez FTP/SFTP lub Git — bezpieczniejsze metody z pełną historią zmian.