Soru: API anahtarlarımın başka birinin GitHub aramasının bir parçası olmasını nasıl önleyebilirim?
Cevap: Potansiyel güvenlik riskleri nedeniyle API anahtarlarının doğrudan kodunuz içinde saklanması genellikle önerilmez. Kodunuz paylaşılırsa veya herkes tarafından erişilebilir hale gelirse, API anahtarını gören herkes onu kullanabilir ve potansiyel olarak kötüye kullanıma veya güvenlik ihlaline yol açabilir.
API anahtarlarını güvenli bir şekilde saklamanın birkaç yolu vardır:
- Ortam Değişkenleri: API anahtarlarını makinenizdeki ortam değişkenlerinde saklayabilir ve ardından bu değişkenlere kodunuzdan erişebilirsiniz. Bu yöntemin, anahtarları kodunuzun dışında tutma avantajı vardır (bunlar kodun çalıştığı ortamdadır). Ayrıca, yerel makineniz, geliştirme sunucunuz, üretim sunucunuz vb. gibi farklı ortamlar için anahtarların farklı olabileceği anlamına gelir.
- Yapılandırma dosyaları: API anahtarlarını, kod havuzunuza dahil olmayan ayrı bir yapılandırma dosyasında da saklayabilirsiniz. Bu dosya dosyanıza eklenmelidir. .gitignore dosyanın deponuza kaydedilmesini önlemek için. Yetkisiz erişimi önlemek için bu yapılandırma dosyasına uygun dosya düzeyinde izinler eklediğinizden emin olun. Kodunuzda, API anahtarlarını bu dosyadan okursunuz.
- Sırlar yönetim sistemleri: Daha büyük uygulamalar veya daha hassas veriler için bir sır yönetim sistemi kullanmayı düşünebilirsiniz. Bunlar, API anahtarları gibi sırlara erişimi yönetmeye yardımcı olan AWS Secrets Manager, HashiCorp’s Vault ve Google’s Secret Manager gibi özel araçlardır.
- Ortama özel yapılandırma hizmetleri: Heroku ve Netlify gibi platformlar, API anahtarlarını depolamak için kullanılabilen ortam değişkenlerini ayarlamak için belirli özelliklere veya hizmetlere sahiptir.
- Şifreli depolama: API anahtarlarını bir veritabanında veya başka bir depolama sisteminde saklamanız gerekiyorsa, bunları şifrelemelisiniz. Bu şekilde, birisi depolama sistemine erişim sağlasa bile, şifreleme anahtarı olmadan anahtarları kullanamaz.
Bu çözümlerin en düşük ek yükü olan ilk ikisinin güvenli kodlamada nasıl uygulanacağına bir göz atalım. Bunun için Python’u örnek dil olarak kullandım, ancak herhangi bir dil benzer kavramlara sahip olacaktır. Python’un avantajı, müthiş veri işleme yetenekleriyle birlikte onu çoğu kullanım için ideal kılan basitliği ve kullanım kolaylığıdır.
API Anahtarlarını Depolamak İçin Ortam Değişkenlerini Kullanma
Ortam değişkenleri, API anahtarları gibi hassas bilgileri kaynak kodunuzun dışında depolamanıza olanak tanır. Çalıştırma sırasında uygulama tarafından erişilebilirler ve farklı ortamlarda (örn. geliştirme, hazırlama ve üretim) kolayca yapılandırılabilirler.
İlk olarak, sisteminizde veya uygulamanızın çalıştığı platformda ortam değişkenini ayarlayın. Unix tabanlı bir sistemde, kullanarak bir ortam değişkeni ayarlayabilirsiniz. ihracat emretmek:
% export API_KEY=
Ardından, uygulamanızın kodundaki ortam değişkenine erişin. Örneğin, Python’da, bir ortam değişkeninin değerine şunu kullanarak erişebilirsiniz: işletim sistemi modül:
% python import os api_key = os.environ['API_KEY']
API Anahtarlarını Depolamak İçin Harici Yapılandırma Dosyalarını Kullanma
Acemi geliştirici veya veri bilimcisi için API anahtarlarını depolamanın başka bir yolu da harici yapılandırma dosyalarıdır. Bunlar çok yararlı olabilir; ancak, bunları kullanarak depodan hariç tutmalısınız. .gitignore veya eşdeğeri.
İlk önce, gibi bir yapılandırma dosyası oluşturun. yapılandırma.jsonve API anahtarını içinde saklayın:
json { "api_key": "" }
Ardından, yapılandırma dosyasını projenizin .gitignore (veya eşdeğeri) sürüm kontrol sisteminiz tarafından takip edilmediğinden emin olmak için.
Son olarak, API anahtarına erişmek için yapılandırma dosyasını uygulamanızın koduna yükleyin. Örneğin, Python’da bir JSON yapılandırma dosyası yükleyebilir ve API anahtarına şu şekilde erişebilirsiniz:
import json with open('config.json') as f
config = load(f) api_key = config['api_key']
API’lerinizi Kilitleyin
Ortam değişkenlerini veya harici yapılandırma dosyalarını kullanarak, API anahtarlarınızı yanlışlıkla açığa çıkmaya karşı daha iyi koruyabilir, hassas bilgilerin yönetimini basitleştirebilir ve çeşitli ortamlar için farklı yapılandırmaların bakımını kolaylaştırabilirsiniz. Yetkisiz erişimi önlemek için ortam değişkenleri ve yapılandırma dosyaları üzerinde uygun erişim denetimlerini uygulamalısınız.
Projenizin karmaşıklığı (ve önemi) arttıkça, hassas öğeleri depolamak için gizli yönetim sistemleri veya ortama özel yapılandırma hizmetleri gibi doğuştan yetenekli platformlara geçmeniz önerilebilir. Ancak bu hızlı çözümler, daha güvenli bir temel üzerinde başlamanıza yardımcı olur.