Ide dasarnya adalah bahwa Anda TIDAK memeriksa nilai-nilai rahasia dalam kode atau dalam biner yang dikompilasi. Terutama jika proyeknya adalah open source Anda benar-benar tidak boleh. Ada beberapa strategi konfigurasi yang dapat Anda lakukan untuk melakukannya:
Placeholder dalam kode (nilai hardcoded)
Placeholder dalam kode - seperti yang disarankan - yang paling waras dan termudah untuk dilakukan dalam bahasa pemrograman dinamis karena kode mudah diubah (tanpa perlu dikompilasi). Saya telah melihat banyak proyek open source melakukan ini seperti MediaWiki dengan itu LocalSettings.php
.
The downside dengan strategi ini adalah bahwa kunci hardcoded. Jadi jika program ini didistribusikan sebagai biner maka kunci hard-coded tidak membuatnya dapat dipelihara.
File Teks Konfigurasi
Anda juga dapat melakukan ini dengan menerapkan file teks konfigurasi , yaitu program / aplikasi mencari file konfigurasi dan membaca nilai dari itu. Anda dapat check-in konfigurasi sampel dengan placeholder tetapi memiliki konfigurasi lokal yang sebenarnya di mesin Anda.
Dalam kasus Anda, Anda dapat membuat key.conf
file teks dengan kunci aktual, biarkan program menggunakan file itu dan biarkan diabaikan oleh kontrol versi. Anda dapat, karena membantu, memeriksa key.conf.example
file teks dengan kunci palsu dan memeriksa itu. Pastikan program / aplikasi Anda membuat pesan kesalahan yang bermanfaat bagi pengguna untuk menambahkan kunci aktual dalam file yang benar.
Beberapa bahasa pemrograman memiliki API yang menyediakan ini secara otomatis untuk Anda, seperti:
Jika aplikasi Anda adalah aplikasi basis data, maka pertimbangkan untuk memasukkan kunci atau variabel konfigurasi lainnya ke dalam basis data. Itu sama dengan file teks konfigurasi di atas tetapi Anda meletakkan semua variabel konfigurasi seperti kunci dalam tabel database sebagai gantinya.
Melalui tampilan preferensi atau aplikasi Back Office
Jika program adalah jendela atau aplikasi web dengan tampilan maka Anda juga dapat membiarkan aplikasi membuat file konfigurasi, melalui tampilan preferensi. Dengan begitu Anda tidak perlu memeriksa dalam file contoh konfigurasi seperti yang disarankan di atas.
MediaWiki memecahkan masalah ini dengan cara menghasilkan LocalSettings.php
file secara otomatis dalam proses instalasi awal.
Memang ini bukan pilihan untuk program yang hanya dijalankan sebagai proses latar belakang, layanan atau daemon. Namun itu sebabnya Anda membuat proyek GUI terpisah untuk ini untuk membuat titik masuk pengaturan administrasi dan preferensi, di aplikasi web yang biasanya disebut aplikasi Back Office .