# Varundusfailid veebijuurkataloogis: .zip, .sql ja .bak

> Varundusfaile veebijuurkataloogis saab igaüks alla laadida. Nii leiate .zip-, .sql- ja .bak-failid, blokeerite need ja kontrollite, kas neid on päritud.

Allikas: https://phpsos.de/et/blog/backup-dateien-im-webroot/  
Seis: 25.10.2026  
Pakkuja: PHP SOS, PHP hädaabi ja serveri turvalisus. Kohene abi WhatsAppis: https://wa.me/491736494914?text=Tere%2C%20PHP%20SOS%2C%20vajame%20abi%20oma%20PHP-serveriga.%20Ettev%C3%B5te%3A%20%E2%80%A6%20Veebisait%3A%20%E2%80%A6

**Lühidalt:** Varundusfaile veebijuurkataloogis, see tähendab andmebaasitõmmiseid (`.sql`), arhiive (`.zip`, `.tar.gz`) ja varukoopiaid (`.bak`, `.old`, `~`), saab alla laadida igaüks, kes faili nime teab või ära arvab. Otsige selliseid faile regulaarselt käsuga `find`, viige varukoopiad avalikust kataloogist välja, blokeerige tüüpilised laiendid veebiserveris ja kontrollige juurdepääsulogidest, kas neid on juba päritud.

## Varukoopia, millest saab leke

Vahetult enne uuendust loob keegi veel kiiresti varukoopia: `backup.zip` põhikataloogis, selle kõrval `datenbank.sql`. Uuendus õnnestub, failid jäävad alles. Kuid hiljem on need endiselt olemas, koos kogu koodi, kõigi klientide andmete ja veebisaidi ligipääsuandmetega.

See muster kuulub veebiserverite kontrollimisel sagedaseimate leidude hulka. Selleks ei ole vaja ei ekspluatatsiooni ega auku PHP-s. Veebiserver edastab veebijuurkataloogist selle, mis seal asub, ning arhiive või SQL-faile ta ei käivita, vaid pakub neid allalaadimiseks.

Veebisaidi arhiiv sisaldab seejuures mitte ainult andmeid, vaid ka koodi koos konfiguratsiooniga. Kes selle alla laadib, saab rahulikult nõrkusi otsida ja tunneb andmebaasi ligipääsuandmeid.

Automatiseeritud skannerid otsivad sihipäraselt tüüpilisi nimesid, nagu `backup.zip`, `site.tar.gz` või `dump.sql`, sageli kombineerituna domeeninime või kuupäevaga. Kes usub, et ebatavaline failinimi kaitseb, alahindab, kui süstemaatiliselt see otsing käib.

## Millised failid on silmas peetud

Varundusfailid veebijuurkataloogis esinevad mitmes vormis:

| Liik | Tüüpilised laiendid | Mis seal sees on |
|---|---|---|
| Andmebaasitõmmised | `.sql`, `.sql.gz`, `.dump` | klientide andmed, tellimused, parooliräsid, sätted |
| Veebisaidi arhiivid | `.zip`, `.tar`, `.tar.gz`, `.tgz`, `.rar`, `.7z` | kogu kood, konfiguratsioon, üleslaadimised |
| Üksikute failide koopiad | `.bak`, `.old`, `.orig`, `.save`, `.php~`, `.copy` | sageli konfiguratsioonifailid ligipääsuandmetega |
| Redaktori jäänused | `.swp`, `.swo`, `~` lõpus | parajasti muudetavate failide osad |
| Pistikprogrammide varukoopiad | oma alamkaustad sisuhaldussüsteemis | täielikud varukoopiad, osaliselt äraarvatavate nimedega |

Eriti tundlikud on konfiguratsioonifailide koopiad. Algse faili `config.php` käivitab server ja selle sisu jääb varjatuks. Koopia `config.php.bak` edastab ta tekstina, koos andmebaasi parooliga.

## Varukoopia veebijuurkataloogis leida: otsing serveris

Järgmine otsing loetleb kahtlased failid veebijuurkataloogide all koos kuupäeva ja suurusega. Kohandage teed oma serverile:

```bash
find /var/www /srv/www -type f \( \
  -iname '*.sql' -o -iname '*.sql.gz' -o -iname '*.dump' -o \
  -iname '*.zip' -o -iname '*.tar' -o -iname '*.tar.gz' -o -iname '*.tgz' -o \
  -iname '*.rar' -o -iname '*.7z' -o \
  -iname '*.bak' -o -iname '*.old' -o -iname '*.orig' -o -iname '*.save' -o \
  -iname '*~' -o -iname '*.swp' \) \
  -printf '%TY-%Tm-%Td  %10s  %p\n' 2>/dev/null | sort
```

Mitte iga tabamus ei ole probleem. Mõned arhiivid on teadlikult allalaadimiseks mõeldud, näiteks käsiraamatud. Iga fail väärib aga teadlikku otsust. Pöörake erilist tähelepanu suurtele failidele ja varundusliste pistikprogrammide kaustadele. Jagatud hostingu (shared hosting) puhul ilma shelli ligipääsuta aitab hostingupaneeli failiülevaade või päring SFTP kaudu.

> **Tegutsege kohe:**
> Kui leiate veebijuurkataloogist klientide andmetega andmebaasitõmmise, viige see kohe avalikust kataloogist välja ja salvestage juurdepääsulogid, enne kui need pööratakse. Alles seejärel selgitage, kas faili on päritud.

## Kas faili on juba alla laaditud?

Vastus on veebiserveri juurdepääsulogides. Otsitakse edukaid päringuid ehk olekut 200 leitud failidele:

```bash
# Tüüpiliste varundusliste laiendite edukad päringud (Combined-logivorming)
zgrep -hE '\.(sql|sql\.gz|zip|tar|tgz|gz|bak|old|7z|rar)[ ?]' /var/log/nginx/access.log* \
  | awk '$9 == 200 {print $4, $1, $7, $10}'
```

Väljund näitab aega, aadressi, teed ja vastuse suurust. Kui edastatud suurus vastab faili suurusele, laaditi fail täielikult alla. Kui kaugele logid ulatuvad, sõltub pööramisest. Kui need ei ulatu faili loomise kuupäevani, ei saa varasemat päringut välistada. Üksikasjalikult kirjeldab seda [Veebiserveri logide hindamine pärast rünnakut](https://phpsos.de/et/ratgeber/logfiles-auswerten/). Kui toorlogidele ligipääsu ei ole, näiteks jagatud hostingu puhul, küsige hostingupakkujalt vastava ajavahemiku logisid.

Kui isikuandmetega tõmmis päriti või seda ei saa välistada, algab teavitamiskohustuse kontroll. Põhitõed võtab kokku [IKÜM-i teavitamiskohustus: 72 tundi pärast intsidenti](https://phpsos.de/et/compliance/dsgvo-meldepflicht-72-stunden/); hinnang üksikjuhul kuulub teie andmekaitsespetsialistile. Päritud failidest pärit ligipääsuandmed vahetage igal juhul välja.

## Varundusega pistikprogrammid, paneelid ja kolimised

Paljud leiud tulenevad sisuhaldussüsteemide ja poodide varundusliste pistikprogrammide tõttu. Need salvestavad varukoopiaid sageli veebijuurkataloogi alamkausta, osaliselt kuupäeva ja domeeni nimedega, mida saab ära arvata. Kontrollige igas pistikprogrammis kolme sätet: Kuhu varundatakse? Kas kohalikud koopiad kustutatakse pärast välisesse sihtkohta üleslaadimist? Kas kohalik kaust on otsese päringu vastu kaitstud?

Hostingupaneelide varukoopiad asuvad tavaliselt väljaspool veebijuurkataloogi, näiteks kodukataloogis. Probleemiks muutub, kui keegi kopeerib sellise varukoopia veebijuurkataloogi, sest allalaadimine brauseris on mugavam kui SFTP kaudu. Kolimiste puhul kehtib seetõttu: edastus SFTP kaudu või otse serverite vahel, mitte kunagi avaliku lingi kaudu.

Kui teie veebisaite hooldavad agentuurid või teenusepakkujad, peaks see reegel olema ka lepingus, koos kohustusega hooldustööde järel koristada. Vihjeid annab [IT-teenusepakkujate lepingud: turvakohustuste selge reguleerimine](https://phpsos.de/et/blog/dienstleistervertrag-sicherheit/).

## Püsivalt ennetada: salvestuskoht ja blokeeringud

Et probleem ei korduks, on vaja kahte taset. Esimene on organisatsiooniline: varukoopiatel on kindel koht väljaspool veebijuurkataloogi ja lisaks väljaspool serverit. Kuidas näeb välja töökindel varukoopia, kirjeldab juhend [Varukoopiad 3-2-1 reegli järgi](https://phpsos.de/et/ratgeber/backups-3-2-1/).

Teine tase on tehniline: veebiserver keeldub põhimõtteliselt tüüpilistest varundusliku laiendist, isegi kui mõni fail siiski alles jääb.

```nginx
location ~* \.(sql|sql\.gz|dump|bak|old|orig|save|swp|swo)$ {
    return 404;
}
location ~ ~$ {
    return 404;
}
```

Arhiive, nagu `.zip`, blokeerite ainult siis, kui teie veebisait selles vormingus allalaadimisi ei paku, või sihipäraselt kaustades, kus allalaadimisi ei asu. Täiendavalt aitavad regulaarne automaatne otsing teavitusega ja lühike reegel meeskonnas: ei mingeid varukoopiaid ja koopiaid veebijuurkataloogis, isegi mitte viieks minutiks. Seotud juhtumeid, nagu peidetud konfiguratsioonifailid, käsitleb [Ligipääsuandmete ja .env-failide õige kaitsmine](https://phpsos.de/et/blog/env-dateien-schuetzen/).

## Kuidas PHP SOS konkreetselt aitab?

- Me otsime teie veebijuurkataloogidest tõmmiseid, arhiive, koopiaid ja pistikprogrammide varukoopiaid ning hindame iga leidu.
- Me kontrollime juurdepääsulogide põhjal, kas faile on päritud, ja dokumenteerime tulemuse teie andmekaitsehinnangu jaoks.
- Me seadistame veebiserveris blokeeringud ja regulaarse automaatse otsingu.
- Me viime varukoopiad kaitstud kohta väljaspool veebijuurkataloogi.

Need tööd kuuluvad meie [PHP veebiserverite kõvendamise](https://phpsos.de/et/leistungen/server-haertung/) juurde.


## Korduma kippuvad küsimused

**Miks varukoopiad üldse veebijuurkataloogi satuvad?**  
Enamasti mugavusest: tõmmis luuakse kolimiseks, pistikprogramm salvestab varukoopiaid oma kausta või enne muudatust tehakse kiiresti faili koopia laiendiga .bak. Seejärel fail unustatakse.

**Kui ohtlik on fail nagu config.php.bak?**  
Väga. Laiendiga .php faili käivitab server ja selle sisu jääb varjatuks. Teise laiendiga koopia edastab server seevastu enamasti tekstina, koos andmebaasi parooli ja võtmetega.

**Kas avalikult kättesaadav andmebaasitõmmis on andmeleke?**  
Kui see sisaldab isikuandmeid ja seda on päritud või päringut ei saa välistada, tuleb kõne alla IKÜM-i kohane teavitamiskohustus. Hinnangu üksikjuhul annavad teie andmekaitsespetsialist või õigusnõustaja.

**Kus peaksid varukoopiad selle asemel asuma?**  
Väljaspool veebijuurkataloogi ja lisaks väljaspool serverit, 3-2-1 reegli järgi. Vähemalt üks koopia peaks olema salvestatud nii, et veebiserver ise seda kustutada ega muuta ei saa.

## Allikad

- [OWASP Top 10](https://owasp.org/www-project-top-ten/)
- [IKÜM art 33: teavitamine järelevalveasutusele](https://dsgvo-gesetz.de/art-33-dsgvo/)
- [Nginx-i dokumentatsioon](https://nginx.org/en/docs/)
