1. Zablokuj xmlrpc.php
Plik xmlrpc.php to pozostałość z czasów, gdy wpisy publikowało się z zewnętrznych aplikacji. Dziś na większości stron nikt go nie używa, za to boty bardzo go lubią: zgadują przez niego hasła i zasypują serwer zapytaniami. Blokada w .htaccess albo w konfiguracji Nginx od razu odciąża serwer i ucina masę prób logowania.
2. Schowaj wp-config.php
W wp-config.php są dane do bazy, klucze i sole. Zablokuj do niego dostęp z przeglądarki i ustaw uprawnienia na 600 albo 640, żeby na współdzielonym hostingu nikt inny nie mógł go odczytać.
3. Wyłącz edytor plików w panelu
Jedna linijka w konfiguracji, define('DISALLOW_FILE_EDIT', true);, wyłącza edycję plików motywów i wtyczek z kokpitu. Nawet jak ktoś wyłudzi hasło administratora, nie wklei sobie backdoora do functions.php w dwie sekundy.
4. Zmień adres logowania i przytnij boty
Adres /wp-login.php boty odpytują bez przerwy. Przeniesienie logowania pod inny adres i do tego Fail2ban albo zapora Cloudflare mocno zmniejszają ilość śmieciowego ruchu.
5. Dodaj nagłówki bezpieczeństwa
Strict-Transport-Security wymusza HTTPS. X-Content-Type-Options: nosniff i X-Frame-Options: SAMEORIGIN blokują część sztuczek z podmianą typów plików i osadzaniem twojej strony w cudzej ramce (clickjacking). Content-Security-Policy utrudnia wstrzyknięcie obcego JavaScriptu. Do tego ciasteczka sesji z flagą HttpOnly, żeby skrypt nie mógł ich odczytać.