Основна ідея полягає в тому, що ви НЕ здійснюєте реєстрацію конфіденційних значень у коді чи у складеному бінарному файлі. Особливо, якщо проект є відкритим кодом, ви справді не повинні. Існує кілька стратегій конфігурації, які ви можете вжити для цього:
Заповнювачі в коді (твердо кодовані значення)
Запропоновані місця заповнення коду - як було запропоновано - що найбільш дивно і найпростіше зробити в динамічних мовах програмування, оскільки код легко змінювати (без необхідності компілювати). Я бачив дуже багато проектів з відкритим кодом, які роблять це, наприклад MediaWiki LocalSettings.php.
Недолік цієї стратегії є те , що ключ зашитий. Отже, якщо програма поширюється у вигляді двійкової, то наявність жорсткого коду ключа не робить її особливо рентабельною.
Конфігурація текстових файлів
Ви також можете це зробити, застосовуючи текстові файли конфігурації , тобто програма / додаток шукає файл конфігурації та зчитує з нього значення. Ви можете зареєструвати зразок конфігурації за допомогою заповнювачів, але фактична конфігурація локальна у вашому пристрої.
У вашому випадку ви можете створити key.confтекстовий файл із фактичним ключем, дозволити програмі використовувати цей файл, і нехай він буде ігноруватися контролем версій. Ви можете скористатись key.conf.exampleтекстовим файлом із фальшивим ключем і перевірити це. Переконайтеся, що ваша програма / програма видає корисне повідомлення про помилку, щоб користувач міг додати фактичний ключ у потрібний файл.
Деякі мови програмування мають API, які надають це автоматично для вас, наприклад:
Якщо ваша програма є додатком для баз даних, то розгляньте можливість введення ключа або інших змінних конфігурації в базу даних. Це те саме, що текстовий файл конфігурації, наведений вище, але ви додаєте всі змінні конфігурації, такі як ключ, у таблицю бази даних.
Через перегляд налаштувань або додаток Back Office
Якщо програма являє собою вікно або веб-додаток із переглядами, ви також можете дозволити програмі створити файл конфігурації через перегляд налаштувань. Таким чином, вам не потрібно перевіряти прикладний конфігураційний файл, як було запропоновано вище.
MediaWiki вирішив це аналогічно, автоматично генеруючи LocalSettings.phpфайл у початковому процесі встановлення.
Справді, це не варіант для програм, які виконуються виключно як фонові процеси, послуги чи демон. Однак саме тому ви створюєте окремі проекти GUI для них, щоб створити точку входу для налаштувань адміністрації та налаштувань у веб-додатках, які зазвичай називають додатком Back Office .