WordPress to najpopularniejszy system zarządzania treścią (CMS) na świecie, napędzający ponad 40% internetu. Jego popularność jest jednak mieczem obosiecznym – czyni go bowiem głównym celem dla hakerów i botów. Czy wiesz, że większość włamań nie jest celowana w konkretną firmę, ale jest wynikiem zautomatyzowanych skryptów szukających luk w zabezpieczeniach?
Zabezpieczenie strony na WordPressie nie musi wymagać zaawansowanej wiedzy programistycznej. Często wystarczy zmiana nawyków i wdrożenie kilku sprawdzonych rozwiązań. Większość poradników dotyczących bezpieczeństwa WordPressa kończy się na zaleceniu „zainstaluj wtyczkę”. Choć jest to dobra rada dla początkujących, prawdziwe bezpieczeństwo buduje się głębiej – na poziomie konfiguracji serwera i plików systemowych. Jeśli chcesz wejść na wyższy poziom ochrony i zamknąć hakerom furtki, o których istnieniu wielu nie ma pojęcia, ten artykuł jest dla Ciebie.
Przejdziemy przez konkretne modyfikacje plików .htaccess, wp-config.php oraz functions.php, które zamienią Twoją stronę w cyfrową twierdzę.
1. Serce systemu: Zabezpieczanie pliku wp-config.php
Plik wp-config.php to najważniejszy plik w Twojej instalacji. Zawiera dane dostępowe do bazy i klucze szyfrujące. Jego ochrona jest priorytetem.
Zablokuj edycję plików z kokpitu
Domyślnie WordPress pozwala administratorom na edycję plików motywów i wtyczek bezpośrednio w panelu (Wygląd > Edytor plików). To ogromne zagrożenie – jeśli haker włamie się na konto administratora, może wstrzyknąć złośliwy kod bez dostępu do FTP. Aby to wyłączyć, dodaj w wp-config.php:
define('DISALLOW_FILE_EDIT', true);
Ukryj błędy PHP
Wyświetlanie błędów na „żywej” stronie (produkcyjnej) może zdradzić atakującemu ścieżki do plików lub informacje o konfiguracji serwera. Wyłącz to:
define('WP_DEBUG', false);
if ( ! WP_DEBUG ) {
ini_set('display_errors', 0);
}
Zaktualizuj klucze uwierzytelniania (Secret Keys)
To one odpowiadają za szyfrowanie ciasteczek sesji. Jeśli podejrzewasz atak, ich zmiana natychmiast wyloguje wszystkich użytkowników. Wygeneruj nowe klucze tutaj: api.wordpress.org/secret-key/1.1/salt/ i podmień odpowiednie sekcje w wp-config.php.
Może Cię zainteresować: Hosting pod WordPress – ranking na 2025
2. Tarcza ochronna: Magia pliku .htaccess
Plik .htaccess (na serwerach Apache/LiteSpeed) pozwala sterować dostępem do serwera jeszcze zanim WordPress w ogóle „wstanie”.
Zablokuj dostęp do plików systemowych
Nikt z zewnątrz nie powinien mieć prawa podglądać Twojego pliku konfiguracyjnego. Dodaj ten kod do głównego pliku .htaccess:
<FilesMatch "^(wp-config.*\.php|\.htaccess|readme\.html)$">
Order allow,deny
Deny from all
</FilesMatch>
Wyłącz listowanie katalogów
Jeśli w folderze nie ma pliku index.php, serwer może wyświetlić listę wszystkich plików w katalogu – to prezent dla hakera. Zablokuj to jedną linijką:
Options -Indexes
Zabezpiecz folder wp-includes
Folder ten zawiera kluczowe pliki systemowe WordPressa. Użytkownik nie powinien tam niczego uruchamiać bezpośrednio. Utwórz plik .htaccess wewnątrz katalogu /wp-includes/ i wklej:
# Blokada wykonywania skryptów PHP w wp-includes
<FilesMatch "\.(?i:php)$">
Order allow,deny
Deny from all
</FilesMatch>
<Files wp-tinymce.php>
Allow from all
</Files>
<Files ms-files.php>
Allow from all
</Files>
Zablokuj wykonywanie PHP w wp-content/uploads
To tutaj najczęściej trafiają zainfekowane pliki, które udają zdjęcia. Jeśli haker wgra wirusa .php do folderu mediów, nie pozwól mu go uruchomić. Utwórz .htaccess w katalogu /wp-content/uploads/:
# Blokada wykonywania PHP w folderze mediów
# To zapobiega uruchamianiu wirusów ukrytych w plikach
<FilesMatch "\.(?i:php)$">
Order allow,deny
Deny from all
</FilesMatch>
3. Zamknij tylne furtki: XML-RPC i wersja WP
Wyłącz XML-RPC
Protokół ten jest przestarzały i często wykorzystywany do ataków typu Brute Force oraz DDoS. Jeśli nie korzystasz z zewnętrznych aplikacji do publikowania postów, wyłącz go. Możesz to zrobić w functions.php:
add_filter('xmlrpc_enabled', '__return_false');
Lub jeszcze skuteczniej w głównym .htaccess:
<Files xmlrpc.php>
Order allow,deny
Deny from all
</Files>
Ukryj wersję WordPressa
Informacja o wersji systemu w kodzie HTML pomaga botom szukać stron z nieaktualnym, dziurawym oprogramowaniem. Dodaj do functions.php:
remove_action('wp_head', 'wp_generator');
4. Baza danych: Zmiana domyślnego prefiksu
Podczas instalacji WordPressa domyślny prefiks tabel to wp_. Zmieniając go na unikalny (np. mojastrona_x9_), utrudniasz ataki typu SQL Injection, które często celują „w ciemno” w domyślne nazwy tabel. Uwaga: Zmianę prefiksu na istniejącej stronie najlepiej przeprowadzić za pomocą wtyczki lub z dużą ostrożnością bezpośrednio w bazie danych, pamiętając o aktualizacji wp-config.php.
Podsumowanie
Wdrożenie powyższych zabezpieczeń wymaga nieco odwagi w pracy z kodem, ale drastycznie podnosi poziom bezpieczeństwa Twojej witryny. Pamiętaj jednak: każdą zmianę w plikach systemowych poprzedzaj wykonaniem pełnej kopii zapasowej (backupu). Jeden błąd w .htaccess może „położyć” całą stronę, a backup pozwoli Ci ją przywrócić w kilka minut.
