Veřejně dostupný soubor .DS_Store

Co to je

Na webu je veřejně dostupný soubor .DS_Store. Vytváří ho Finder v macOS a ukládá do něj seznam položek složky. Na server se dostane omylem, když se složka nahraje přes FTP, rsync nebo se zabalí do archivu. Kontrolujeme, že odpověď má strukturu opravdového .DS_Store, ne jen HTTP 200.

Proč je to problém

Samotný soubor nic neukradne. Prozradí ale názvy souborů a složek, které nejsou odkazované a nikdo je neměl vidět:

Je to nález s nízkou závažností. Ukazuje ale, že se na server nahrává i to, co tam nepatří.

Jak to opravit

Smažte soubory na serveru

find /var/www -name .DS_Store -delete

Zabraňte tomu, aby se vrátily

Přidejte je do .gitignore a při nahrávání vylučte:

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

Zablokujte soubory začínající tečkou

nginx (nechá projít jen .well-known):

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

Apache:

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

Ověřte i to, co soubor vyjmenoval. Pokud je tam záloha nebo export, zkontrolujte, jestli také není veřejná.

Reference