WordPress Security Hardening - zaawansowane zabezpieczenia
Podstawowe zabezpieczenia WordPress to dopiero początek. Hardening to zaawansowane techniki utrudniające ataki. Od modyfikacji plików konfiguracyjnych po ochronę bazy danych. Dla tych, którzy chcą maksymalnego bezpieczeństwa.
Krótka odpowiedź
Ukrywanie informacji o WordPress
Ukryj wersję WordPress:
```php
// functions.php
remove_action('wp_head', 'wp_generator');
add_filter('the_generator', '__return_empty_string');
```
Ukryj wersję w RSS:
```php
add_filter('the_generator', '__return_null');
```
Usuń wersje z CSS/JS:
```php
add_filter('style_loader_src', 'remove_version_query', 9999);
add_filter('script_loader_src', 'remove_version_query', 9999);
function remove_version_query($src) {
return $src ? remove_query_arg('ver', $src) : $src;
}
```
Wyłącz readme.html i license.txt:
- Usuń te pliki lub ogranicz dostęp w .htaccess
Ochrona plików konfiguracyjnych
wp-config.php w .htaccess:
```apache
order allow,deny
deny from all
```
Przenieś wp-config.php:
- Możesz przenieść poziom wyżej (poza public_html)
- WordPress automatycznie znajdzie
Ochrona .htaccess:
```apache
order allow,deny
deny from all
```
Blokada dostępu do includes:
```apache
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
```
Hardening wp-config.php
Wyłącz edycję plików w panelu:
```php
define('DISALLOW_FILE_EDIT', true);
```
Wyłącz instalację wtyczek/motywów:
```php
define('DISALLOW_FILE_MODS', true);
```
Wymuś SSL dla admina:
```php
define('FORCE_SSL_ADMIN', true);
```
Unikalne klucze (sekrety):
- Wygeneruj nowe: https://api.wordpress.org/secret-key/1.1/salt/
- Zmiana unieważnia wszystkie sesje
Limit rewizji i autosave:
```php
define('WP_POST_REVISIONS', 3);
define('AUTOSAVE_INTERVAL', 300);
```
Tryb debug tylko lokalnie:
```php
define('WP_DEBUG', false);
define('WP_DEBUG_LOG', false);
define('WP_DEBUG_DISPLAY', false);
```
Ochrona wp-admin i logowania
Ograniczenie dostępu do wp-admin (IP):
```apache
# .htaccess w /wp-admin/
Order Deny,Allow
Deny from all
Allow from 123.456.789.0
```
Ograniczenie wp-login.php:
```apache
Order Deny,Allow
Deny from all
Allow from 123.456.789.0
```
Zmiana URL logowania (wtyczka):
- WPS Hide Login - zmienia /wp-admin na /custom-login
- Utrudnia ataki brute force
Wyłączenie XML-RPC:
```apache
Order Deny,Allow
Deny from all
```
Lub wtyczka: Disable XML-RPC
Two-Factor Authentication:
- Wtyczka Two Factor lub Wordfence
- TOTP (Google Authenticator)
- Backup codes