Záloha wp-config.php je verejne dostupná
Čo to je
Vo webroote vášho WordPressu je verejne dostupný súbor ako wp-config.php.bak, wp-config.php.old, wp-config.txt alebo wp-config.php~. Vzniká to najčastejšie takto:
- Editovali ste
wp-config.phpv textovom editore a ten urobil automatickú zálohu (wp-config.php~). - Pred zásahom ste si „poistili“ staré verzie premenovaním (
cp wp-config.php wp-config.php.bak). - Hosting alebo plugin urobil automatickú zálohu a uložil ju vedľa.
Prečo je to problém
Kľúčový rozdiel oproti bežnému wp-config.php: PHP súbory Apache/nginx vykonáva — vráti HTML output, nie kód. Ale súbor s príponou .bak alebo .txt server pošle ako čistý text. Útočník otvorí https://example.cz/wp-config.php.bak a dostane:
DB_NAME,DB_USER,DB_PASSWORD,DB_HOST— prístup k databáze.AUTH_KEY,SECURE_AUTH_KEY,LOGGED_IN_KEY,NONCE_KEY— šifrovacie kľúče pre session cookies.table_prefix— konkrétne názvy tabuliek.
S kľúčmi si útočník podpíše cookies admina. S databázou prepíše obsah a nastaví heslo. Spravidla je hotovo.
Ako to opraviť
Krok 1 — zmazať všetky .bak / .old / .txt zálohy
cd /var/www/example.cz
ls -la wp-config*
# nájsť a zmazať
rm wp-config.php.bak wp-config.php.old wp-config.php~ wp-config.txtPrejdite aj celý webroot:
find . -type f \( -name "*.bak" -o -name "*.old" -o -name "*~" \) -lsKrok 2 — rotovať to, čo bolo v .bak súbore
Predpokladajte, že niekto súbor stiahol. Vymeňte:
- Heslo k databáze. Po zmene aktualizujte aj
wp-config.php:define('DB_PASSWORD', 'noveheslo');. - WordPress security keys (
AUTH_KEYatď.). Nové vygenerujte na api.wordpress.org/secret-key/1.1/salt/ a nahraďte. Táto zmena odhlási všetkých aktívnych používateľov — je to v poriadku.
Krok 3 — zablokovať .bak / .old patterns na webserveri
Aby sa ďalšia omylom vytvorená záloha nedostala von:
nginx:
location ~* \.(bak|old|backup|orig|swp|save|~)$ {
deny all;
return 404;
}Apache (.htaccess):
<FilesMatch "\.(bak|old|backup|orig|swp|save|~)$">
Require all denied
</FilesMatch>Krok 4 — zálohovať správne
Záloha wp-config.php patrí mimo webroot, do verzovania (privátny git, S3 bucket s SSE, dedikovaný backup hosting). Nikdy nie vedľa aktívnej verzie.