WordPress hardening — bezpieczeństwo krok po kroku
Opublikowano: 8 kwietnia 2026 · Kategoria: WordPress / Bezpieczeństwo
WordPress to cel 90% ataków na strony WWW — ze względu na popularność i nieaktualizowane wtyczki. Hardening to seria konfiguracji zmniejszających powierzchnię ataku. Ten artykuł opisuje praktyczne kroki bez utraty funkcjonalności.
Prawa dostępu do plików
# Ustaw prawa dostępu (uruchom z katalogu instalacji WordPress)
find /var/www/html/twojadomena.pl -type f -exec chmod 644 {} \;
find /var/www/html/twojadomena.pl -type d -exec chmod 755 {} \;
# Krytyczne pliki — bardziej restrykcyjne
chmod 600 wp-config.php
chmod 600 .htaccess
# Sprawdź prawa (nie powinno być plików 777 lub 666)
find . -type f -perm 777 -ls
find . -type d -perm 777 -ls Bezpieczna konfiguracja wp-config.php
// Wyłącz edycję plików z dashboardu (zapobiega modyfikacji przez XSS)
define('DISALLOW_FILE_EDIT', true);
// Wyłącz instalację wtyczek/motywów (opcjonalne, rekomendowane na produkcji)
define('DISALLOW_FILE_MODS', true);
// Wymuś HTTPS w panelu admina
define('FORCE_SSL_ADMIN', true);
// Ogranicz czas sesji (w sekundach, domyślnie 2 dni)
define('AUTH_COOKIE_EXPIRATION', 3600); // 1 godzina
// Wyłącz debugowanie na produkcji
define('WP_DEBUG', false);
define('WP_DEBUG_LOG', false);
define('WP_DEBUG_DISPLAY', false); Ochrona /wp-admin przez .htaccess
# Ogranicz dostęp do /wp-admin po IP (umieść w /wp-admin/.htaccess) order deny,allow deny from all allow from TWÓJ_IP_BIURO allow from TWÓJ_IP_DOM # Zablokuj xmlrpc.php (jeśli nie używasz Jetpack ani mobilnej apki WP) # (umieść w głównym .htaccess) <Files xmlrpc.php> order deny,allow deny from all </Files> # Zablokuj dostęp do wp-config.php <Files wp-config.php> order allow,deny deny from all </Files> # Ukryj wersję WordPress (usuń z nagłówków) Header unset X-Powered-By
Dwuskładnikowe uwierzytelnianie (2FA)
# Wtyczka WP 2FA (darmowa, zalecana) # 1. Zainstaluj: wp plugin install wp-2fa --activate --allow-root # 2. Skonfiguruj przez: Użytkownicy → Twój profil → 2FA # Alternatywa: WP-CLI + Google Authenticator wp plugin install google-authenticator --activate --allow-root # Po instalacji — wymuś 2FA dla ról admina: # Ustawienia → WP 2FA → Wymuś 2FA dla: Administrator
Zmiana prefiksu tabel bazy danych
# UWAGA: Przed zmianą zrób PEŁNY backup bazy danych! wp db export backup-przed-zmiana-prefiksu.sql --allow-root # Metoda 1: Wtyczka Better Search Replace lub Brozzme DB Prefix # Zmień wp_ na twojprefiks_ w wp-config.php i bazie # Metoda 2: Ręcznie w wp-config.php # $table_prefix = 'twojprefiks_'; (zmień z domyślnego 'wp_') # TYLKO dla nowych instalacji — przy istniejącej bazie użyj wtyczki # lub specjalistycznego skryptu (możliwość błędów przy nieumiejętnej zmianie)
Monitoring i reagowanie na incydenty
# Skanowanie malware (Wordfence) wp plugin install wordfence --activate --allow-root # Następnie: Wordfence → Scan → Start New Scan # Sprawdź zmodyfikowane pliki (podejrzane pliki zmienione w ostatnich 24h) find /var/www/html/twojadomena.pl -newer /var/www/html/twojadomena.pl/wp-config.php \ -not -path '*/wp-content/uploads/*' -type f # Sprawdź nieznane pliki PHP w uploads (typowy wstrzyknięty malware) find /var/www/html/twojadomena.pl/wp-content/uploads -name '*.php' -type f # Log nieudanych logowań (Apache) grep '403\|401' /var/log/apache2/access.log | grep 'wp-login' | tail -20