N'exposez pas le dossier .git, qui peut contenir des informations sensibles.
Lorsque vous initialisez et déployez votre application via Git, cela crée un .git
dossier contenant les informations nécessaires. Si .git
est accessible via un serveur Web ou une interface sur Internet, il peut potentiellement fuir des données sensibles.
Pire encore, si vous avez des informations d'identification stockées dans un fichier de configuration.
Utilisez ceux-ci outils pour trouver les informations d'identification dans le référentiel GitHub.
Si vous n'êtes pas sûr d'avoir .git quelque part sur vos applications Web, vous pouvez utiliser un scanner de vulnérabilité de sécurité comme OpenVAS, Gitjackeur, Ou d'autres mentionné ici.
Gitjacker est plus que de détecter le répertoire .git. Il télécharge le répertoire entier.
Il existe plusieurs façons de gérer cela.
Vous pouvez choisir de ne pas garder .git
dossier sur le serveur ou bloquer toute demande. Le blocage de la demande est assez simple, et c'est ainsi que vous pouvez le faire en fonction du serveur Web que vous utilisez.
Nginx
Si vous utilisez Nginx, vous pouvez ajouter les éléments suivants location
directive en nginx.conf
filet
location ~ /\.git {
deny all;
}
Ce qui précède demanderait à Nginx de lancer 403 comme ci-dessous chaque fois qu'il y a une requête contenant .git
Sinon, vous pouvez renvoyer 404 si vous ne voulez pas qu'un attaquant suppose que vous avez .git sur le serveur.
location ~ /\.git {
return 404;
}
Et cela reviendrait le Code d'état HTTP comme 404 comme ci-dessous.
Quoi que vous choisissiez, n'oubliez pas de redémarrer le Nginx après avoir modifié la configuration.
service nginx restart
Apache HTTP
Voyons comment bloquer .git
dans le serveur Web Apache. Vous pouvez utiliser RedirectMatch
or DirectoryMatch
pour y parvenir.
L'utilisation de RedirectMatch est probablement la plus simple. Il vous suffit d'ajouter ce qui suit dans httpd.conf
or .htaccess
fichier.
RedirectMatch 404 /\.git
Ce qui précède lancerait 404 lorsque quelqu'un accède à .git, et ce qui suit affichera 403.
RedirectMatch 403 /\.git
Ensuite, essayons d'utiliser la règle DirectoryMatch en ajoutant ce qui suit dans httpd.conf
fichier.
<DirectoryMatch "^/.*/\.git/">
Deny from all
</Directorymatch>
Redémarrez Apache et accédez à l'URL, y compris .git; il affichera 403 Erreur interdite.
Cloudflare
C'est mon préféré. Bloquez la demande au bord!
Mais, comme vous pouvez le deviner, cela ne fonctionnera que si votre site est accéléré grâce au Cloudflare réseau.
- Connectez-vous à Cloudflare
- Allez dans l'onglet Pare-feu >> Règles de pare-feu >> Créer une règle de pare-feu
- Donnez un nom à la règle - Bloquer GIT
- Sélectionner un champ - URI
- Opérateur - contient
- Valeur - .git
- Choisissez une action - Bloquer et enregistrer
Il faudra environ 1 minute pour propager la règle dans tous les centres de données Cloudflare. Une fois terminé, Cloudflare fera le reste.
Une chose à noter, lors de la mise en œuvre de la règle de pare-feu Cloudflare pour bloquer, vous devez vous assurer que origine n'est pas exposé. Sinon, un attaquant peut contourner Cloudflare pour accéder aux fichiers .git.
Conclusion
J'espère que ce qui précède vous aidera à atténuer le risque d'exposition du répertoire .git.