Temel fikir, kodda veya derlenmiş ikili dosyada gizli değerleri check-in ETMEMEKTİR. Özellikle proje açık kaynaksa gerçekten yapmamalısınız. Bunu yapmak için uygulayabileceğiniz birkaç yapılandırma stratejisi vardır:
Koddaki yer tutucular (sabit kodlanmış değerler)
Kodun yer tutucuları - önerildiği gibi - kodun değiştirilmesi kolay olduğu için (derlemeye gerek kalmadan) dinamik programlama dillerinde en akılcı ve en kolay olanıdır. MediaWiki gibi bir çok açık kaynak projesinin bunu yaptığını gördüm LocalSettings.php.
Bu strateji ile olumsuz anahtar kodlanmış olmasıdır. Dolayısıyla, program bir ikili olarak dağıtılırsa, o zaman anahtarın sabit kodlu olması, bu programı özellikle sürdürülebilir kılmaz.
Yapılandırma Metin Dosyaları
Bunu, yapılandırma metin dosyalarını uygulayarak da yapabilirsiniz , yani program / uygulama bir yapılandırma dosyası arar ve bu dosyadaki değerleri okur. Yer tutucularla örnek bir yapılandırmayı iade edebilir, ancak gerçek yapılandırmayı makinenizde yerel olarak kullanabilirsiniz.
Sizin durumunuzda key.conf, gerçek anahtarla bir metin dosyası oluşturabilir , programın bu dosyayı kullanmasına ve sürüm kontrolü tarafından yok sayılmasına izin verebilirsiniz . Yararlı olmak için, key.conf.examplesahte bir anahtarla bir metin dosyasına giriş yapabilir ve bunu kontrol edebilirsiniz. Programınızın / uygulamanızın, kullanıcının gerçek anahtarı doğru dosyaya eklemesi için yardımcı bir hata mesajı verdiğinden emin olun.
Bazı programlama dillerinde bunu sizin için otomatik olarak sağlayan API'ler bulunur, örneğin:
Uygulamanız bir veritabanı uygulamasıysa, anahtarı veya diğer yapılandırma değişkenlerini veritabanına koymayı düşünün. Yukarıdaki yapılandırma metin dosyasıyla aynıdır, ancak anahtar gibi tüm yapılandırma değişkenlerini bir veritabanı tablosuna koyarsınız.
Tercihler görünümü veya bir Arka Ofis uygulaması aracılığıyla
Program bir pencere veya görünümleri olan bir web uygulamasıysa, uygulamanın bir tür tercihler görünümü aracılığıyla yapılandırma dosyasını oluşturmasına da izin verebilirsiniz. Bu şekilde, yukarıda önerildiği gibi örnek bir yapılandırma dosyasını kontrol etmeniz gerekmez.
MediaWiki, LocalSettings.phpdosyayı ilk yükleme işleminde otomatik olarak oluşturarak benzer şekilde çözdü .
Kuşkusuz, bu yalnızca arka plan işlemleri, hizmetler veya arka plan programları olarak çalışan programlar için bir seçenek değildir. Ancak bu nedenle, genellikle Back Office uygulaması olarak adlandırılan web uygulamalarında, yönetim ve tercih ayarları için bir giriş noktası oluşturmak üzere ayrı GUI projeleri oluşturursunuz .