Podstawową ideą jest to, że NIE rejestrujesz poufnych wartości w kodzie lub w skompilowanym pliku binarnym. Zwłaszcza jeśli projekt jest open source, naprawdę nie powinieneś. W tym celu można zastosować kilka strategii konfiguracji:
Symbole zastępcze w kodzie (wartości zakodowane na stałe)
Symbole zastępcze w kodzie - jak sugerowano - co jest najbardziej rozsądne i najłatwiejsze w dynamicznych językach programowania, ponieważ kod można łatwo zmienić (bez konieczności kompilacji). Widziałem wiele takich projektów typu open source, takich jak MediaWiki LocalSettings.php
.
Wadą tej strategii jest to, że klucz jest ustalony. Więc jeśli program jest dystrybuowany jako plik binarny, to posiadanie klucza na stałe nie czyni go szczególnie łatwym do utrzymania.
Pliki tekstowe konfiguracji
Możesz to również zrobić, implementując konfiguracyjne pliki tekstowe , tzn. Program / aplikacja wyszukuje plik konfiguracyjny i odczytuje z niego wartości. Możesz sprawdzić przykładową konfigurację za pomocą symboli zastępczych, ale rzeczywista konfiguracja jest lokalna na twoim komputerze.
W twoim przypadku możesz utworzyć key.conf
plik tekstowy z rzeczywistym kluczem, pozwól programowi użyć tego pliku i pozwól mu zostać zignorowany przez kontrolę wersji. Za pomoc możesz wpisać key.conf.example
plik tekstowy za pomocą fałszywego klucza i to sprawdzić. Upewnij się, że Twój program / aplikacja wyświetla pomocny komunikat o błędzie dla użytkownika, aby dodać właściwy klucz do poprawnego pliku.
Niektóre języki programowania mają interfejsy API, które zapewniają to automatycznie, na przykład:
Jeśli aplikacja jest aplikacją bazy danych, rozważ umieszczenie klucza lub innych zmiennych konfiguracyjnych w bazie danych. Jest taki sam jak powyższy plik tekstowy konfiguracji, ale zamiast tego umieścisz wszystkie zmienne konfiguracyjne, takie jak klucz, w tabeli bazy danych.
Poprzez widok preferencji lub aplikację Back Office
Jeśli program jest oknem lub aplikacją internetową z widokami, możesz również pozwolić aplikacji na utworzenie pliku konfiguracyjnego, poprzez rodzaj widoku preferencji. W ten sposób nie musisz wpisywać przykładowego pliku konfiguracyjnego, jak sugerowano powyżej.
MediaWiki rozwiązało to podobnie, automatycznie generując LocalSettings.php
plik w procesie wstępnej instalacji.
Trzeba przyznać, że nie jest to opcja dla programów, które działają wyłącznie jako procesy, usługi lub demony w tle. Jednak właśnie dlatego tworzysz dla nich osobne projekty GUI, aby utworzyć punkt wejścia dla ustawień administracyjnych i preferencji, w aplikacjach internetowych zwanych zwykle aplikacjami Back Office .