Stellen Sie den Ordner .git nicht bereit, der vertrauliche Informationen enthalten kann.
Wenn Sie Ihre Anwendung über Git initialisieren und bereitstellen, wird eine erstellt .git
Ordner, der die erforderlichen Informationen enthält. Wenn .git
Auf den Ordner kann über einen Webserver oder ein Frontend über das Internet zugegriffen werden. Dadurch können möglicherweise vertrauliche Daten verloren gehen.
Schlimmer noch, wenn Sie Anmeldeinformationen in einer Konfigurationsdatei gespeichert haben.
Benutze diese Werkzeuge um Anmeldeinformationen im GitHub-Repository zu finden.
Wenn Sie nicht sicher sind, ob Sie irgendwo in Ihren Webanwendungen .git haben, können Sie einen Sicherheitslücken-Scanner wie verwenden OpenVAS, GitjackerOder andere hier erwähnt.
Gitjacker ist mehr als das Erkennen des .git-Verzeichnisses. Es lädt das gesamte Verzeichnis herunter.
Es gibt mehrere Möglichkeiten, damit umzugehen.
Sie können sich dafür entscheiden, nicht zu behalten .git
Ordner auf dem Server oder blockieren Sie jede Anfrage. Das Blockieren der Anfrage ist ziemlich einfach, und dies können Sie je nach verwendetem Webserver erreichen.
Nginx
Wenn Sie Nginx verwenden, können Sie Folgendes hinzufügen location
Richtlinie in nginx.conf
Datei
location ~ /\.git {
deny all;
}
Das Obige würde Nginx anweisen, 403 wie unten zu werfen, wenn eine Anfrage mit .git vorliegt
Alternativ können Sie 404 zurückgeben, wenn ein Angreifer nicht annehmen soll, dass Sie .git auf dem Server haben.
location ~ /\.git {
return 404;
}
Und das würde das zurückgeben HTTP-Statuscode als 404 wie unten.
Vergessen Sie nicht, den Nginx neu zu starten, nachdem Sie die Konfiguration geändert haben.
service nginx restart
Apache HTTP
Mal sehen, wie man blockiert .git
im Apache-Webserver. Sie können verwenden RedirectMatch
or DirectoryMatch
um das zu erreichen.
Die Verwendung von RedirectMatch ist wahrscheinlich die einfachste. Sie müssen nur Folgendes hinzufügen httpd.conf
or .htaccess
Datei.
RedirectMatch 404 /\.git
Das obige würde 404 werfen, wenn jemand auf .git zugreift, und das Folgende wird 403 zeigen.
RedirectMatch 403 /\.git
Versuchen wir als Nächstes, die DirectoryMatch-Regel zu verwenden, indem Sie Folgendes hinzufügen httpd.conf
Datei.
<DirectoryMatch "^/.*/\.git/">
Deny from all
</Directorymatch>
Starten Sie den Apache neu und greifen Sie auf die URL zu, einschließlich .git. es wird 403 Verbotener Fehler angezeigt.
Cloudflare
Das ist mein Lieblings. Blockiere die Anfrage am Rande!
Wie Sie sich vorstellen können, funktioniert dies jedoch nur, wenn Ihre Website durch die Website beschleunigt wird Cloudflare Netzwerk.
- Melden Sie sich bei Cloudflare an
- Gehen Sie zur Registerkarte Firewall >> Firewall-Regeln >> Erstellen Sie eine Firewall-Regel
- Geben Sie einen Regelnamen ein - Block GIT
- Feld auswählen - URI
- Operator - enthält
- Wert - .git
- Wählen Sie eine Aktion - Blockieren und speichern
Die Verbreitung der Regel in allen Cloudflare-Rechenzentren dauert ca. 1 Minute. Sobald dies erledigt ist, erledigt Cloudflare den Rest.
Wenn Sie die zu blockierende Cloudflare-Firewall-Regel implementieren, müssen Sie Folgendes sicherstellen: Herkunft ist nicht ausgesetzt. Andernfalls kann ein Angreifer Cloudflare umgehen um auf .git-Dateien zuzugreifen.
Fazit
Ich hoffe, dass Ihnen das oben Genannte dabei hilft, das Risiko einer Offenlegung des .git-Verzeichnisses zu verringern.