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