Yapay zeka kodlama ajanlarını kullanırken "Evet, bir daha sorma" butonuna tıklamak size hız kazandırırken, tüm veritabanı şifrelerinizi ve API anahtarlarınızı herkese açık GitHub repolarına taşıyor olabilir.
Güvenlik firması Apiiro tarafından yayınlanan güncel araştırmaya göre, GitHub üzerinde herkese açık 104.000'den fazla .claude/settings.local.json dosyası tespit edildi. Daha da kritik olanı, bu dosyaların 1.122 tanesinin içinde aktif canlı veritabanı bağlantı cümleleri, bulut sağlayıcı admin anahtarları ve API tokenları düz metin olarak yer alıyordu. Araştırma git geçmişi ve ajan sohbet dökümlerini kapsayacak şekilde genişletildiğinde 1.994 farklı repoda 2.539 benzersiz gizli anahtar sızıntısı belgelendi.
Sızıntı Nasıl Gerçekleşiyor?
Sorun üç küçük varsayılan davranışın birleşmesinden doğuyor:
- İzin Onayının Kaydedilmesi: Claude Code terminalde bir komut çalıştırırken onay ister. Geliştirici "Yes, and don't ask again" (Evet, bir daha sorma) seçeneğini işaretlediğinde, onaylanan komutun tamamı projenin içindeki
.claude/settings.local.jsondosyasına yazılır. - Düz Metin Şifreler: Eğer onayladığınız komutun içinde
DATABASE_URL=...,curl -H "Authorization: Bearer ...",psqlşifresi veya bir bulut erişim anahtarı geçiyorsa, bu değerler maskelenmeden doğrudan JSON dosyasına işlenir. - Proje
.gitignoreEksikliği: Claude Code bu dosyayı genellikle geliştiricinin kendi bilgisayarındaki global git exclude listesine ekler; ancak projenin kök dizinindeki.gitignoredosyasına eklemez. Proje başka bir bilgisayara klonlandığında, bir ekipten başka bir geliştiricigit add .çalıştırdığında veya DockerCOPY . .ile imaj oluşturulduğunda dosya takip edilmeye başlar ve uzaktaki repoya/imaja gönderilir.
1. Adım: Projelerinizi ve Git Geçmişinizi Hemen Tarayın
Çalışma dizininizde veya geçmiş commit'lerde .claude/settings.local.json dosyasının takip edilip edilmediğini şu komutlarla kontrol edebilirsiniz:
# 1. Mevcut çalışma dizininde takip edilen .claude dosyalarını kontrol et
git ls-files | grep -E '\.claude/'
# 2. Tüm git geçmişinde bu dosyanın yer alıp almadığını kontrol et
git log --all --full-history -- "**/.claude/settings.local.json" "**/.claude/settings.json"Eğer ikinci komut tek bir commit bile döndürüyorsa, dosyayı sonradan silmiş olsanız bile şifreler git geçmişinde durmaya devam ediyor demektir.
2. Adım: Proje .gitignore Dosyasına Ekleyin
Global git exclude ayarlarına güvenmek yerine her projenin kök dizinindeki .gitignore ve varsa .dockerignore dosyasına şu satırları ekleyin:
# AI Kodlama Ajanı Yerel İzin ve Oturum Dosyaları
.claude/settings.local.json
.claude/*.local.*
.cursor/mcp.jsonDosya halihazırda git tarafından takip ediliyorsa, yerelden silmeden takipten çıkarmak için:
git rm --cached .claude/settings.local.json3. Adım: Sızmış Anahtarları İptal Edin ve Yenileyin
GitHub gibi herkese açık veya ekip içi bir repoya düşmüş tek bir anahtar bile saniyeler içinde botlar tarafından taranıp kopyalanabilir. Bu nedenle:
.claude/settings.local.jsondosyasını açıp içinde düz metin parola,sk-...,ghp_...,AKIA...,postgres://veya JWT token geçip geçmediğini kontrol edin.- Şüpheli bir değer geçmişte tek bir kez bile pushlandıysa, yalnızca commit'i silmek yeterli değildir; ilgili API anahtarını, veritabanı parolasını ve bulut erişim jetonunu derhal iptal edip yenisini (rotate) üretin.
- Komut içinde ham şifre yazmak yerine
.envdeğişkenleri üzerinden referans vermeyi ($DATABASE_URLgibi) alışkanlık haline getirin.
İnteraktif Yol Haritası & Araç
Bunu da oku
- CZTRİnsan Eli Değmeden %100 Otonom Yapay Zeka Ajanlarının Yazdığı İlk Resmi AWS Projesi: AWS Emulator Kurulum Rehberi
İnsan Eli Değmeden %100 Otonom Yapay Zeka Ajanlarının Yazdığı İlk Resmi AWS Projesi: AWS Emulator Kurulum Rehberi
12 Kasım 2026 · 5 dk okuma - CZTRAI Neden Hâlâ 2019 Model JavaScript Yazıyor? 'Modern Web Guidance 1.0' Kurulum Rehberi
AI Neden Hâlâ 2019 Model JavaScript Yazıyor? 'Modern Web Guidance 1.0' Kurulum Rehberi
11 Kasım 2026 · 5 dk okuma