Verejne dostupný súbor .DS_Store

Čo to je

Na webe je verejne dostupný súbor .DS_Store. Vytvára ho Finder v macOS a ukladá do neho zoznam položiek priečinka. Na server sa dostane omylom, keď sa priečinok nahrá cez FTP, rsync alebo sa zabalí do archívu. Kontrolujeme, že odpoveď má štruktúru skutočného .DS_Store, nielen HTTP 200.

Prečo je to problém

Samotný súbor nič neukradne. Prezradí však názvy súborov a priečinkov, ktoré nie sú nikde odkazované a nikto ich nemal vidieť:

Je to nález s nízkou závažnosťou. Ukazuje však, že sa na server nahráva aj to, čo tam nepatrí.

Ako to opraviť

Zmažte súbory na serveri

find /var/www -name .DS_Store -delete

Zabráňte tomu, aby sa vrátili

Pridajte ich do .gitignore a pri nahrávaní vylúčte:

.DS_Store
rsync -av --exclude=.DS_Store ./ server:/var/www/site/

Zablokujte súbory s bodkou na začiatku

nginx (prepustí len .well-known):

location ~ /\.(?!well-known) {
    deny all;
}

Apache:

<FilesMatch "^\.DS_Store$">
    Require all denied
</FilesMatch>

Overte aj to, čo súbor vymenoval. Ak je tam záloha alebo export, skontrolujte, či nie je tiež verejná.

Referencie