La idea básica es que NO registre valores confidenciales en el código o en el binario compilado. Especialmente si el proyecto es de código abierto, realmente no deberías. Hay varias estrategias de configuración que puede tomar para hacerlo:
Marcadores de posición en el código (valores codificados)
Marcadores de posición en el código , como se sugirió, lo cual es más sensato y fácil de hacer en lenguajes de programación dinámicos, ya que el código es fácil de cambiar (sin necesidad de compilarlo). He visto muchos proyectos de código abierto hacer esto, como MediaWiki con él LocalSettings.php.
La desventaja de esta estrategia es que la clave está codificada. Entonces, si el programa se distribuye como un binario, entonces tener la clave codificada no lo hace particularmente mantenible.
Archivos de texto de configuración
También puede hacer esto implementando archivos de texto de configuración , es decir, el programa / aplicación busca un archivo de configuración y lee valores de él. Puede registrar una configuración de muestra con marcadores de posición, pero tener la configuración real local en su máquina.
En su caso, puede crear un key.confarchivo de texto con la clave real, dejar que el programa use ese archivo y que el control de versiones lo ignore. Puede, por ser útil, registrar un key.conf.examplearchivo de texto con una clave falsa y verificar eso. Asegúrese de que su programa / aplicación envíe un mensaje de error útil para que el usuario agregue la clave real en el archivo correcto.
Algunos lenguajes de programación tienen API que proporcionan esto automáticamente para usted, como:
Si su aplicación es una aplicación de base de datos, considere colocar la clave u otras variables de configuración en la base de datos. Es lo mismo que el archivo de texto de configuración anterior, pero coloca todas las variables de configuración, como la clave, en una tabla de base de datos.
A través de la vista de preferencias o una aplicación de Back Office
Si el programa es una ventana o una aplicación web con vistas, también puede dejar que la aplicación cree el archivo de configuración, a través de una vista de preferencias. De esa manera, no necesita registrar un archivo de configuración de ejemplo como se sugirió anteriormente.
MediaWiki resolvió esto de manera similar al generar automáticamente el LocalSettings.phparchivo en un proceso de instalación inicial.
Es cierto que esta no es una opción para programas que solo se ejecutan como procesos en segundo plano, servicios o demonios. Sin embargo, es por eso que crea proyectos GUI separados para que estos creen un punto de entrada para la configuración de administración y preferencias, en aplicaciones web que generalmente se llaman una aplicación de Back Office .