6 Best Practices für die sichere Verwaltung von Git-Repositorys

Vermeiden Sie es, Repositorys und andere Aktivitäten zu überladen, die die Verwaltung Ihrer Codebasis erschweren. Verwenden Sie stattdessen Best Practices, um die Arbeit zu vereinfachen.







Durch Untersuchen der Quellen im Repository können Sie die Sicherheitsstufe von Anwendungen bewerten. Aber wenn niemand auf den Code schaut, werden die Probleme nur wachsen. Glücklicherweise hat GitHub seine eigenen Sicherheitsexperten, die den Trojaner kürzlich in mehreren Git-Repos entdeckt haben. Aus irgendeinem Grund wurde er von den Eigentümern dieser Repositories nicht bemerkt. Während wir anderen Menschen nicht vorschreiben können, wie sie unsere eigenen Repositories verwalten sollen, können wir aus ihren Fehlern lernen. In diesem Artikel werden nützliche Techniken für die Arbeit mit Repositorys vorgestellt.



Erkunden Sie Ihr Repository





Dies ist vielleicht die wichtigste Empfehlung. Unabhängig davon, ob Sie das Repository selbst erstellt oder an Sie übergeben haben, ist es wichtig, den Inhalt Ihres Repositorys zu kennen. Sie müssen mindestens die grundlegenden Komponenten der von Ihnen verwalteten Codebasis kennen. Wenn nach einigen Dutzend Zusammenführungen eine zufällige Datei angezeigt wird, können Sie diese leicht erkennen, da sie Fragen für Sie aufwirft. Als nächstes sollten Sie es überprüfen, um es herauszufinden, und danach sein Schicksal entscheiden.



Versuchen Sie, keine Binärdateien hinzuzufügen





Git wurde ursprünglich für Textdateien entwickelt, sei es C-, Python- oder Java-Code oder JSON, YAML, XML, Markdown, HTML usw.:



$ cat hello.txt
This is plain text.
It's readable by humans and machines alike.
Git knows how to version this.

$ git diff hello.txt
diff --git a/hello.txt b/hello.txt
index f227cc3..0d85b44 100644
--- a/hello.txt
+++ b/hello.txt
@@ -1,2 +1,3 @@
 This is plain text.
+It's readable by humans and machines alike.
 Git knows how to version this.




Git mag keine Binärdateien:



$ git diff pixel.png
diff --git a/pixel.png b/pixel.png
index 563235a..7aab7bc 100644
Binary files a/pixel.png and b/pixel.png differ

$ cat pixel.png
 PNG
IHDR7n $gAMA  
               abKGD݊ tIME 

                          -2R  
IDA c` ! 3%tEXtdate:create2020-06-11T11:45:04+12:00  r.%tEXtdate:modify2020-06-11T11:45:0


Die Daten in einer Binärdatei können nicht wie Klartext analysiert werden. Wenn sich also etwas in der Binärdatei ändert, muss es vollständig überschrieben werden.



Um die Sache noch schlimmer zu machen, können Sie die Binärdaten nicht selbst überprüfen (lesen und analysieren).

Zusätzlich zu den üblichen POSIX-Tools können Sie Binärdateien mit git diff finden. Wenn Sie versuchen, diff mit der Option --numstat auszuführen, gibt Git null zurück:



$ git diff --numstat /dev/null pixel.png | tee
-     -   /dev/null => pixel.png
$ git diff --numstat /dev/null file.txt | tee
5788  0   /dev/null => list.txt


Wenn Sie in Betracht ziehen, Ihrem Repository Binärdateien hinzuzufügen, halten Sie inne und überlegen Sie. Wenn während des Erstellungsprozesses eine Binärdatei generiert wird, warum sollte sie dann Ihrem Repo hinzugefügt werden? Wenn Sie dies für sinnvoll halten, stellen Sie sicher, dass Sie in einer README-Datei oder einem ähnlichen Ort beschreiben, warum Sie die Binärdateien aufbewahren und wie das Protokoll für deren Aktualisierung lautet. Aktualisierungen sollten sparsam durchgeführt werden, da sich der Speicherplatz jedes Mal verdoppelt, wenn Sie Änderungen am Blob vornehmen.



Bibliotheken von Drittanbietern müssen Drittanbieter bleiben



Während einer der vielen Vorteile von Open Source darin besteht, dass Sie Code, den Sie nicht geschrieben haben, frei verwenden und weitergeben können, gibt es viele gute Gründe, eine Bibliothek eines Drittanbieters nicht in Ihrem eigenen Repository zu hosten. Zunächst müssen Sie den gesamten Code und seine weiteren Aktualisierungen unabhängig überprüfen, um sicherzustellen, dass die Bibliothek zuverlässig ist. Zweitens wird beim Kopieren von Bibliotheken von Drittanbietern in das Git-Repository der Fokus vom Hauptprojekt weg verschoben.



Verwenden Sie das Git-Submodul , um externe Abhängigkeiten zu verwalten .



Verwenden Sie git nicht blind hinzufügen





Wenn Ihr Projekt erfolgreich kompiliert wurde, widerstehen Sie dem Drang, den Befehl git add zu verwenden. (wobei "." beispielsweise das aktuelle Verzeichnis ist). Dies ist besonders wichtig, wenn Sie Ihr Projekt nicht manuell kompilieren, sondern eine IDE zum Verwalten Ihres Projekts verwenden. Es kann äußerst schwierig sein, den Überblick darüber zu behalten, was Ihrem Repository hinzugefügt wurde, wenn die IDE Ihr Projekt verwaltet. Daher ist es wichtig, nur das hinzuzufügen, was Sie selbst erstellt und für das Hinzufügen vorbereitet haben, und kein neues Objekt, das auf mysteriöse Weise in Ihrem Projektordner angezeigt wurde.



Überprüfen Sie daher vor dem Ausführen von git add, was dem Repository hinzugefügt wird. Wenn Sie ein unbekanntes Objekt sehen, finden Sie heraus, woher es stammt und warum es sich nach dem Ausführen von make clean (oder einem entsprechenden Befehl) noch in Ihrem Projektverzeichnis befindet.



Verwenden Sie Git ignorieren





Ein typisches Projektverzeichnis enthält viele versteckte Dateien, Metadaten und unnötige Artefakte. Sie sollten diese Objekte besser ignorieren: Je mehr es gibt, desto wahrscheinlicher wird es, dass Sie von diesem "Müll" gestört werden und etwas Wichtiges oder Gefährliches übersehen.



Die Gitignore-Datei ermöglicht es, unnötige Dinge herauszufiltern. Github.com/github/gitignore bietet verschiedene benutzerdefinierte Gitignore-Vorlagen, die Sie herunterladen und in Ihrem Projekt hosten können. Gitlab.com beispielsweise hat solche Vorlagen vor einigen Jahren angeboten.



Moderate Codebasisänderungen





Wenn Sie einen Pull oder Pull Request erhalten oder wenn Sie einen Patch per E-Mail erhalten, sollten Sie sicherstellen, dass alles in Ordnung ist. Ihre Aufgabe ist es, den neuen Code zu studieren, der in Ihre Codebasis kommt, und zu verstehen, was er tut. Wenn Sie mit der Implementierung nicht einverstanden sind oder schlimmer noch, diese Implementierung nicht verstehen, schreiben Sie eine Nachricht an den Absender und bitten Sie um Klarstellung. Es ist nichts Falsches daran, neuen Code zu lernen, der einen Platz in Ihrem Projekt beansprucht. Darüber hinaus tun Sie dies zum Nutzen Ihrer Benutzer: In diesem Fall werden sie klar verstehen, welche Änderungen Sie akzeptieren und warum.



Verantwortung übernehmen



Open Source-Software sicher zu halten, ist eine Gemeinschaftsaufgabe. Erkunden Sie die Codebasis, vermeiden Sie Unordnung und ignorieren Sie potenzielle Sicherheitsbedrohungen in von Ihnen geklonten Repositorys. Git ist mächtig, aber es ist nur ein Computerprogramm, daher liegt die Verantwortung für die Verwaltung der Repos letztendlich bei Ihnen.






Werbung



Epic Server sind virtuelle Linux- oder Windows- Server mit leistungsstarken AMD EPYC-Prozessoren und sehr schnellen Intel NVMe-Laufwerken. Zerstreuen wie heiße Kuchen!






All Articles