Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

API Anahtarımı Public Repo'da 3 Ay Unuttum: Güvenlik Felaketi ve Kurtuluş Hikayem

thedevx

Üye
Katılım
14 Mart 2026
Mesajlar
36
😱 "Bu API Faturası Neden Bu Kadar?"

Geçenlerde bir uyarı maili geldi, kredi dolmuş diye. "Yok artık, daha yeni yükledim" diye düşündüm. Hesabı açtım, kullanım grafiği tavan yapmış. Meğerse OpenAI API anahtarım, public bir GitHub reposunda 3 aydır cirit atıyormuş. Kafayı yiyecektim resmen.

🔍 Nerede Hata Yaptım?

Olanlar oldu, panikle loglara ve commit geçmişime daldım. İlk projeyi kurarken hızlıca test etmek istemiştim. Anahtarı direkt kodun içine yazıverdim şu şekilde:

Python:
api_key = "sk-...benim-süper-gizli-anahtarım..."

Sonra tabii "Bunu .env'e alayım, .gitignore'ı da ayarlarım" diye düşünüp, unutmuşum! Bir sonraki commit'te dosyayı gönderiverdim. .env dosyasını oluşturup anahtarı taşıdım ama .gitignore dosyasına eklemeyi unuttuğum için, .env dosyam da repo'ya pushlanmış. Şaka gibi ama oldu işte.

🛠️ Hasar Kontrolü ve Yapılması Gerekenler

Önce hemen panik modunda eski anahtarı revoke ettim (iptal). API sağlayıcısının panelinden yeni bir tane oluşturdum. Sonra tüm repo geçmişini (history) tarayıp, o anahtarın ve .env dosyasının izini silmem gerekiyordu. git filter-repo gibi araçlar var ama dikkatli kullanmak lazım, tüm geçmişi yeniden yazar.

En kritik ders: İLK commit'ten önce .gitignore'ı hazırlamak ve içine `.env` satırını eklemek. Bir de pre-commit hook'u kurmak fena fikir değil, .env dosyasını kontrol etsin.

✅ Artık Standart Prosedürüm

Şimdi her yeni projede ilk işim şu:

Bash:
touch .env .gitignore
echo ".env" >> .gitignore
echo ".env.local" >> .gitignore

Sonra config dosyamda da şöyle bir kontrol yapıyorum:

Python:
import os
from dotenv import load_dotenv

load_dotenv()  # .env dosyasını yükler

API_KEY = os.getenv("API_KEY")
if not API_KEY:
    raise ValueError("API_KEY .env dosyasında tanımlı değil!")

Bu sayede anahtar yoksa proje başlamıyor bile. Bir de artık private repo kullanmıyorsam, pushlamadan önce iki kere düşünüyorum.

Siz de böyle bir "güvenlik faciası" yaşadınız mı? Ya da .env ve .gitignore konusunda daha bombaproof bir yönteminiz var mı? Anlatın da öğrenelim...
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Geri