Hardening WordPressa: 5 kroków, by zamknąć drogi włamania
Dlaczego domyślna instalacja WordPressa jest podatna na ataki?
WordPress w domyślnej konfiguracji jest nastawiony na maksymalną wygodę użytkownika, a nie na bezpieczeństwo. Adresy URL kluczowych plików są przewidywalne (/wp-admin, /wp-login.php, xmlrpc.php), plik readme.html ujawnia wersję WordPress, a domyślna nazwa użytkownika to admin. Każda z tych informacji pomaga atakującemu.
Hardening to proces uszczelniania domyślnej konfiguracji. Poniższe 5 kroków można wdrożyć bez wtyczek i bez wiedzy programistycznej.
Krok 1 — Ogranicz dostęp do wp-login.php
Strona logowania WordPress jest celem ciągłych ataków brute-force — boty testują tysiące kombinacji haseł na minutę. Najprostszym zabezpieczeniem jest ograniczenie dostępu do wp-login.php tylko do znanych adresów IP.
W pliku .htaccess dodaj:
<Files "wp-login.php">
Order Deny,Allow
Deny from All
Allow from TWÓJ_ADRES_IP
</Files>
Jeśli Twój IP jest dynamiczny, alternatywą jest zmiana adresu strony logowania na niestandardowy, np. /wejscie-admin — wtyczki jak WPS Hide Login robią to w 2 minuty.
Krok 2 — Wyłącz XML-RPC
XML-RPC to interfejs API WordPressa oryginalnie stworzony dla klientów mobilnych i pingów. Dziś jest głównie wektorem ataków — pozwala na testowanie setek haseł w jednym żądaniu HTTP (atak amplifikacji brute-force).
Jeśli nie używasz Jetpack i nie publikujesz przez zewnętrzne aplikacje, wyłącz XML-RPC w .htaccess:
<Files "xmlrpc.php">
Order Deny,Allow
Deny from All
</Files>
Krok 3 — Zabezpiecz wp-config.php
Plik wp-config.php zawiera dane logowania do bazy danych — to najważniejszy plik na Twoim serwerze. Zrób dwie rzeczy:
- Przenieś go poziom wyżej niż
public_html — WordPress automatycznie go znajdzie, ale serwer WWW nie będzie go serwował bezpośrednio.
- Zablokuj dostęp przez .htaccess:
<Files "wp-config.php">
Order Deny,Allow
Deny from All
</Files>
Krok 4 — Wyłącz edycję plików przez panel admina
Domyślnie WordPress pozwala edytować pliki PHP motywu i wtyczek przez panel administratora (Wygląd → Edytor). Jeśli atakujący przejmie konto admina, może wstrzyknąć złośliwy kod bez dostępu do FTP. Wyłącz tę funkcję w wp-config.php:
define('DISALLOW_FILE_EDIT', true);
Krok 5 — Ustaw odpowiednie uprawnienia plików
Złe uprawnienia to jeden z powodów, dla których hakerzy mogą zapisywać pliki na Twoim serwerze. Prawidłowe wartości:
- Katalogi: 755 (lub 750)
- Pliki PHP: 644
- wp-config.php: 440 lub 400
- Pliki
.htaccess: 444
W SSH możesz ustawić uprawnienia hurtowo:
find public_html -type d -exec chmod 755 {} \;
find public_html -type f -name "*.php" -exec chmod 644 {} \;
chmod 440 public_html/wp-config.php
Co dalej?
Te 5 kroków znacząco utrudnia atak, ale nie zastąpi dobrego hasła, aktualnych wtyczek i regularnych kopii zapasowych. Bezpieczeństwo WordPressa to proces, nie jednorazowe działanie.
Jeśli chcesz delegować monitoring i regularne aktualizacje — sprawdź nasze plany opieki i monitoringu. Dbamy o bezpieczeństwo Twojej strony w tle, byś Ty mógł skupić się na biznesie.