Mais virez donc ce .DS_Store!
MacOS créé des fichiers .DS_Store automatiquement lorsque vous passez par le Finder pour gérer un dossier.
Le système d’exploitation va y stocker des informations, comme par exemple la liste des fichiers dans le dossier, au format binaire.
On ne peut pas lire un fichier .DS_Store
comme ça, le format n’est pas destiné à l’humain, mais c’est facile à décoder en revanche, et ça devient dangereux lorsque c’est déployé sur un serveur web:
- un hacker pourrait retrouver la liste des fichiers supprimés dans un dossier
- des scripts existent pour tenter de télécharger récursivement les fichiers d’un dossier depuis un serveur web via les informations récupérées depuis le
.DS_Store
🔥
Mais comment ça peut arriver en production un tel fichier ?
Si le projet (et/ou la machine d’un des devs) n’a pas .gitignore.
qui liste ce type de fichier, ça va se retrouver dans le dépôt git. J’ai vu plein de dépôts publics, y compris de profils techniques assez avancés, qui oublient ce détail.
Je recommande d’ajouter une règle dans le .gitignore
global de la machine. Commencez par afficher cette config globale :
git config --global core.excludesfile
Et vérifiez ensuite que .DS_Store
y figure.
Si le fichier n’existe pas encore, créez un fichier .gitignore
à la racine de votre dossier utilisateur et reliez-le à la config git via cette commande :
git config --global core.excludesfile ~/.gitignore
Vous avez des templates de gitignore globaux sur Internet pour votre inspiration si vous voulez compléter la liste.
Cela ne va pas retirer les .DS_Store
existants en revanche donc vous pouvez lancer ceci pour faire le ménage :
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
Protégez-vous.