Dlaczego jak zabezpieczyć WordPress to pytanie na dziś, nie na kiedyś
Boty skanujące internet nie śpią, testują znane podatności niemal natychmiast po opublikowaniu CVE. Aktualne wektory ataków w 2025 roku to przede wszystkim:
- Brute-force loginów, masowe próby zgadnięcia hasła do
/wp-login.phpixmlrpc.php. - Podatne wtyczki i motywy, nieaktualne wtyczki z publicznie ujawnionymi lukami (np. SQL injection, XSS, LFI).
- Ataki przez xmlrpc.php, endpoint wielokrotnie nadużywany do prób logowania i DDoS.
- Supply chain, przejęte lub porzucone wtyczki z wstrzykniętym złośliwym kodem.
Dobra wiadomość: kilkanaście konkretnych działań radykalnie zmniejsza powierzchnię ataku. Zaczynajmy.
Checklist: jak zabezpieczyć WordPress krok po kroku
1. Aktualizacje, podstawa bezpieczeństwa
Utrzymuj aktualny rdzeń WordPress, wszystkie wtyczki i motywy. Nieużywane wtyczki i motywy usuń, samo wyłączenie nie chroni przed skanowaniem plików. Włącz automatyczne aktualizacje dla drobnych poprawek bezpieczeństwa rdzenia:
define('WP_AUTO_UPDATE_CORE', 'minor');
2. Silne hasła i uwierzytelnianie dwuskładnikowe (2FA)
Hasło administratora to minimum 20 znaków, menedżer haseł (Bitwarden, 1Password) to najlepsze rozwiązanie. Włącz 2FA dla wszystkich kont z rolą Redaktora i wyżej. Dobre wtyczki do 2FA: WP 2FA lub miniOrange. Jeśli używasz WooCommerce, 2FA dla klientów z uprawnieniami edycji zamówień jest obowiązkowe.
3. Ograniczenie prób logowania
Domyślnie WordPress nie blokuje kolejnych nieudanych prób logowania. Wtyczka Limit Login Attempts Reloaded lub WP Cerber pozwoli zablokować IP po kilku błędnych próbach. Warto też zmienić URL panelu z domyślnego /wp-admin/, zmniejsza liczbę botów, choć nie jest fundamentalnym zabezpieczeniem.
4. Blokada xmlrpc.php
Jeśli nie korzystasz ze zdalnego publikowania ani starszej aplikacji mobilnej, zablokuj xmlrpc.php całkowicie w pliku .htaccess:
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
Alternatywnie, przez filtr PHP w functions.php motywu potomnego. Więcej szczegółów znajdziesz w artykule o xmlrpc.php w WordPress.
5. Hardening wp-config.php
Kilka linii w pliku wp-config.php znacząco podnosi bezpieczeństwo:
// Blokada edycji plików z panelu admina
define('DISALLOW_FILE_EDIT', true);
// Blokada instalacji wtyczek/motywów z panelu (opcjonalnie)
define('DISALLOW_FILE_MODS', true);
// Wymuszenie SSL w panelu
define('FORCE_SSL_ADMIN', true);
// Unikalne klucze i sole (generuj na: wordpress.org/secret-key/1.1/salt/)
define('AUTH_KEY', 'unikalny-ciag-znakow');
define('SECURE_AUTH_KEY', 'unikalny-ciag-znakow');
// ... (pozostałe 6 kluczy)
Przenieś plik wp-config.php o jeden poziom wyżej niż katalog public_html (WordPress obsługuje to automatycznie) lub zablokuj dostęp przez .htaccess:
<Files wp-config.php>
Order Allow,Deny
Deny from all
</Files>
6. Uprawnienia plików i katalogów
Prawidłowe uprawnienia to minimum ryzyka przy atakach na zapis:
- Katalogi:
755 - Pliki PHP:
644 wp-config.php:600lub640.htaccess:644
Na hostingach współdzielonych (home.pl, cyber_Folks, LH.pl) sprawdź uprawnienia przez Menedżer plików w panelu lub FTP.
7. Zasada najmniejszych uprawnień
Każdy użytkownik powinien mieć tylko tyle uprawnień, ile faktycznie potrzebuje. Redaktorzy nie potrzebują roli Administratora. Jeśli tworzysz konto dla agencji lub developera, daj mu dostęp czasowy i ogranicz do niezbędnych możliwości. Po zakończeniu prac, usuń konto lub zmień hasło.
8. WAF i ochrona przez Cloudflare
Web Application Firewall (WAF) filtruje złośliwy ruch zanim dotrze do serwera. Polecam dwa podejścia:
- Cloudflare (nawet plan darmowy), ukrywa prawdziwe IP serwera, blokuje znane boty, oferuje reguły WAF i rate limiting. Szczegółowo opisuję to w usłudze Ochrona Cloudflare dla WordPress.
- Wtyczka Wordfence, WAF po stronie PHP, blokuje ataki na poziomie aplikacji, skanuje pliki pod kątem malware.
9. Kopie zapasowe offsite
Kopia zapasowa to ostatnia linia obrony. Kluczowe zasady:
- Backup codziennie dla aktywnych stron, raz w tygodniu minimum dla wizytówek.
- Przechowuj kopie poza serwerem, Amazon S3, Backblaze B2, Google Drive.
- Testuj przywracanie, kopia, której nie da się przywrócić, nie istnieje.
- Dobre wtyczki: UpdraftPlus, WPvivid, All-in-One WP Migration.
10. Monitoring i alerty
Nie dowiaduj się o ataku od klientów, skonfiguruj powiadomienia:
- Wordfence lub WP Cerber, alerty e-mail przy wykryciu złośliwego kodu lub nieudanych logowaniach.
- Uptime monitoring (np. UptimeRobot, BetterUptime), powiadomienie, gdy strona przestaje odpowiadać.
- Google Search Console, alerty przy wykryciu malware przez Google.
Jeśli zależy Ci na kompleksowym podejściu, zapoznaj się z moją usługą Audyt bezpieczeństwa WordPress, sprawdzam stronę pod kątem wszystkich powyższych punktów i dostarczam raport z rekomendacjami.
Kiedy lepiej zadzwonić do specjalisty
Jeśli Twoja strona już została zainfekowana, wyświetla nieznane treści, jest zablokowana przez Google lub hosting zawiesił konto z powodu złośliwego kodu, nie trać czasu na samodzielne szukanie przyczyny. Podobnie, jeśli strona przetwarza płatności lub dane osobowe i nie masz pewności co do jej konfiguracji bezpieczeństwa. Zadzwoń do mnie na 577 020 415, bezpłatna diagnoza, reakcja w ciągu godziny, działam na hostingach home.pl, cyber_Folks, LH.pl, OVH, Nazwa.pl, Hostinger i Zenbox.