L'idée de base est de ne PAS archiver des valeurs confidentielles dans le code ou dans le binaire compilé. Surtout si le projet est open source, vous ne devriez vraiment pas. Pour ce faire, vous pouvez adopter plusieurs stratégies de configuration:
Espaces réservés dans le code (valeurs codées en dur)
Les espaces réservés dans le code - comme cela a été suggéré - ce qui est le plus sain et le plus facile à faire dans les langages de programmation dynamiques car le code est facile à changer (sans avoir besoin de le compiler). J'ai vu beaucoup de projets open source faire cela, comme MediaWiki avec LocalSettings.php
.
L' inconvénient de cette stratégie est que la clé est codée en dur. Donc, si le programme est distribué sous forme binaire, le fait d'avoir la clé codée en dur ne le rend pas particulièrement maintenable.
Fichiers texte de configuration
Vous pouvez également le faire en implémentant des fichiers texte de configuration , c'est-à-dire que le programme / l'application recherche un fichier de configuration et en lit les valeurs. Vous pouvez archiver un exemple de configuration avec des espaces réservés mais avoir la configuration réelle locale dans votre machine.
Dans votre cas, vous pouvez créer un key.conf
fichier texte avec la clé réelle, laisser le programme utiliser ce fichier et le laisser ignoré par le contrôle de version. Pour être utile, vous pouvez archiver un key.conf.example
fichier texte avec une fausse clé et l'archiver. Assurez-vous que votre programme / application envoie un message d'erreur utile pour que l'utilisateur ajoute la clé réelle dans le fichier correct.
Certains langages de programmation ont des API qui vous fournissent cela automatiquement, comme:
Si votre application est une application de base de données, envisagez de placer la clé ou d'autres variables de configuration dans la base de données. Il est identique au fichier texte de configuration ci-dessus mais vous placez toutes les variables de configuration telles que la clé dans une table de base de données à la place.
Via la vue des préférences ou une application Back Office
Si le programme est une fenêtre ou une application Web avec des vues, vous pouvez également laisser l'application créer le fichier de configuration, via une sorte de vue des préférences. De cette façon, vous n'avez pas besoin d'archiver un exemple de fichier de configuration comme suggéré ci-dessus.
MediaWiki a résolu ce problème de manière similaire en générant automatiquement le LocalSettings.php
fichier lors d'un processus d'installation initial.
Certes, ce n'est pas une option pour les programmes qui s'exécutent uniquement en tant que processus d'arrière-plan, services ou démons. Cependant, c'est pourquoi vous créez des projets GUI séparés pour ceux-ci afin de créer un point d'entrée pour les paramètres d'administration et de préférences, dans les applications Web généralement appelées application Back Office .