Die Grundidee ist, dass Sie KEINE vertraulichen Werte im Code oder in der kompilierten Binärdatei einchecken . Vor allem, wenn das Projekt Open Source ist, sollten Sie das wirklich nicht tun. Es gibt verschiedene Konfigurationsstrategien, die Sie dazu verwenden können:
Platzhalter im Code (fest codierte Werte)
Platzhalter im Code - wie vorgeschlagen - sind am sinnvollsten und einfachsten in dynamischen Programmiersprachen, da der Code leicht zu ändern ist (ohne kompilieren zu müssen). Ich habe viele Open-Source-Projekte gesehen, die dies tun, wie MediaWiki LocalSettings.php
.
Der Nachteil dieser Strategie ist, dass der Schlüssel fest codiert ist. Wenn das Programm also als Binärdatei verteilt wird, ist es nicht besonders wartbar, wenn der Schlüssel fest codiert ist.
Konfigurationstextdateien
Sie können dies auch tun, indem Sie Konfigurationstextdateien implementieren , dh das Programm / die Anwendung sucht nach einer Konfigurationsdatei und liest Werte aus dieser. Sie können eine Beispielkonfiguration mit Platzhaltern einchecken, die aktuelle Konfiguration befindet sich jedoch lokal auf Ihrem Computer.
In Ihrem Fall können Sie eine key.conf
Textdatei mit dem eigentlichen Schlüssel erstellen , das Programm diese Datei verwenden lassen und sie von der Versionskontrolle ignorieren lassen. Sie können, um hilfreich zu sein, eine key.conf.example
Textdatei mit einem falschen Schlüssel einchecken und das Einchecken durchführen. Stellen Sie sicher, dass Ihr Programm / Ihre Anwendung dem Benutzer eine hilfreiche Fehlermeldung anzeigt, um den tatsächlichen Schlüssel in die richtige Datei einzufügen.
Einige Programmiersprachen verfügen über APIs, die dies automatisch für Sie bereitstellen, beispielsweise:
Wenn Ihre Anwendung eine Datenbank-App ist, sollten Sie den Schlüssel oder andere Konfigurationsvariablen in die Datenbank einfügen. Es ist dasselbe wie in der obigen Konfigurationstextdatei, aber Sie speichern stattdessen alle Konfigurationsvariablen wie den Schlüssel in einer Datenbanktabelle.
Über die Ansicht "Einstellungen" oder eine Back Office-App
Wenn es sich bei dem Programm um ein Fenster oder eine Webanwendung mit Ansichten handelt, können Sie die Konfigurationsdatei auch über eine Art Einstellungsansicht erstellen lassen. Auf diese Weise müssen Sie keine Beispielkonfigurationsdatei wie oben vorgeschlagen einchecken.
MediaWiki löste dies auf ähnliche Weise, indem es die LocalSettings.php
Datei bei einer Erstinstallation automatisch generierte .
Zugegebenermaßen ist dies keine Option für Programme, die ausschließlich als Hintergrundprozesse, Dienste oder Daemons ausgeführt werden. Aus diesem Grund erstellen Sie separate GUI-Projekte für diese, um einen Einstiegspunkt für Verwaltungs- und Voreinstellungen in Web-Apps zu erstellen, die normalerweise als Back-Office-Anwendung bezeichnet werden .