← Wszystkie porady

WP_DEBUG włączony na produkcji

Co to oznacza

Jeśli na Twojej stronie produkcyjnej aktywna jest jedna lub więcej stałych debugowania WordPress, ujawniasz informacje techniczne publicznie. Dotyczy to stałych:

  • WP_DEBUG — włącza tryb debugowania, który raportuje błędy PHP.
  • WP_DEBUG_DISPLAY — wyświetla błędy bezpośrednio na stronie, widoczne dla odwiedzających.
  • WP_DEBUG_LOG — zapisuje błędy do pliku wp-content/debug.log.

Te stałe są przydatne podczas developmentu, ale na stronie produkcyjnej stanowią zagrożenie bezpieczeństwa.

Jakie jest ryzyko

  • Wyciek informacji technicznych — komunikaty błędów PHP ujawniają ścieżki plików na serwerze, nazwy tabel bazy danych, wersje oprogramowania i fragmenty kodu. Dla atakującego to gotowa mapa infrastruktury.
  • Publiczny plik debug.log — plik wp-content/debug.log jest często dostępny z przeglądarki pod adresem twojastrona.pl/wp-content/debug.log. Może zawierać dane wrażliwe: zapytania SQL, tokeny, ścieżki, a nawet fragmenty danych użytkowników.
  • Obniżona wydajność — tryb debugowania spowalnia działanie strony, ponieważ PHP rejestruje każdy notice i warning.
  • Profesjonalny wizerunek — wyświetlanie błędów PHP na stronie podważa zaufanie odwiedzających i klientów.

Jak to naprawić

  1. Wyłącz debugowanie w wp-config.php:
    define('WP_DEBUG', false);
    define('WP_DEBUG_DISPLAY', false);
    define('WP_DEBUG_LOG', false);
    
  2. Usuń istniejący plik logów — sprawdź, czy istnieje wp-content/debug.log i usuń go.
  3. Zablokuj dostęp do plików logów — dodaj regułę na serwerze, nawet gdyby plik został przypadkowo utworzony ponownie:
    <Files debug.log>
        Order Deny,Allow
        Deny from all
    </Files>
    
  4. Używaj dedykowanych narzędzi — jeśli potrzebujesz monitoringu błędów na produkcji, skorzystaj z narzędzi typu Sentry lub New Relic zamiast WP_DEBUG.