Dokümanlar

Sorun rehberi · Güvenlik

Sitenin kaynak kod deposu herkese açık

ÖnemKritik
KategoriGüvenlik
KapsamTüm site
EmekAz
DoğrulamaGüvenlik taraması (haftalık ya da Yeniden tara)
Kural anahtarısec_exposed_git

Kısa cevap

Sitenizden /.git/ gibi bir sürüm denetim klasörünün dosyaları indirilebiliyor. Dizin listeleme kapalı olsa bile ücretsiz araçlar bu dosyalardan tüm kaynak kodu ve commit geçmişini, bir zamanlar commit edilmiş her parola ve anahtarla birlikte yeniden oluşturur. Klasörü engelleyin, siteyi onsuz yükleyin ve deponun herhangi bir yerinde geçen her gizli bilgiyi değiştirin.

Neden önemli

Kaynak kod saldırgana sitenizin tam olarak nasıl çalıştığını gösterir: yönetim yolları, veritabanı sorguları, dosya yükleme işleyicileri, özel eklentiler ve hataları. Geçmiş daha da ileri gider: yıllar önce koddan silinmiş bir parola eski commit'lerde hâlâ durur. Açıktaki .git klasörleri internet ölçeğinde taranır ve sitenin tamamen ele geçirilmesinde sık görülen bir başlangıç noktasıdır.

Bir .DS_Store dosyası (macOS Finder'ın oluşturduğu) kod içermez ama bulunduğu klasördeki dosyaların adlarını listeler; bu da yedeklere ve gizli yönetim betiklerine işaret edebilir. Glimana bunu aynı önem düzeyiyle bu kontrol altında bildirir. Bunların hiçbiri sıralamayı doğrudan etkilemez; ardından gelen bir saldırı etkiler.

Glimana bunu nasıl tespit eder

Glimana HTTPS üzerinden /.git/HEAD, /.git/config, /.svn/entries ve /.DS_Store adreslerini ister ve her birinin yalnız ilk 2 KB'ını okur. Yanıt 200 ya da 206 ise ve içerik gerçek biçimdeyse dosya açıkta sayılır: HEAD için ref: refs/heads/…, config için [core] bölümü, Subversion entries biçimi ya da ikili .DS_Store başlığı. HTML sayfalar ve rastgele var olmayan bir adresle aynı yanıtlar yok sayılır. Glimana orada durur, depo nesnelerini indirmez. Açıkta bir depo Kritiktir ve anında uyarı e-postası da gönderir; yalnız dosya adlarını sızdıran tek başına bir .DS_Store Ortadır.

Nasıl düzeltilir

Dikkat

.git klasörünü sunucudan kaldırmak sızıntıyı durdurur ama geri almaz. Kodun ve tüm geçmişinin kopyalandığını varsayın: yalnız güncel dosyalarda değil, geçmişin herhangi bir yerinde geçen her kimlik bilgisini yenileyin ve artık başkalarının da bildiği zayıflıklar için kodu gözden geçirin.

  1. Glimana'da bulguyu bulun. Güvenlik sayfasını açın; bu kontrol Açıkta kalan dosyalar grubunda, son taramanın kanıtı başlığının altında. Aynı sorun Sorunlar › Sitenin kaynak kod deposu herkese açık altında da listelenir.
  2. Düzeltmeyi platformunuzda uygulayın.

    Siteyi web kökünün içinde git clone ya da git pull çalıştırarak yayına almayın. Bunun yerine sürüm denetim verisi olmayan bir kopya yükleyin, örneğin rsync -a --exclude='.git' --exclude='.DS_Store' ./ user@server:/var/www/site/. Sunucuda pull yapmanız şartsa depoyu web kökünün dışında tutun ve web kökünü public/ gibi bir alt klasöre yönlendirin. Artık Finder dosyalarını find /var/www/site -name .DS_Store -delete ile silin.

    Sanal sunucu ayarında ya da .htaccess içinde: RewriteEngine On ve RewriteRule "(^|/)\.(?!well-known/)" - [F]. Bu, sertifika yenileme için /.well-known/ yolunu açık bırakırken .git, .svn, .DS_Store ve diğer tüm gizli dosyaları engeller.

    server bloğunda, diğer düzenli ifade location bloklarından önce: location ~ /\.(?!well-known) { deny all; }, ardından nginx -t && systemctl reload nginx.

    Geçici kalkan olarak: Security › Security rules › Create rule › Custom rules, ifade (http.request.uri.path contains "/.git") or (http.request.uri.path contains "/.svn") or (http.request.uri.path contains ".DS_Store"), eylem Block. Sunucuyu da düzeltin; Cloudflare'i atlayan istekler kapsanmaz.

  3. Glimana'da kontrol edin. Güvenlik sayfasında Yeniden tara düğmesine basın (saatte en çok iki tarama) ya da pazar günkü haftalık taramayı bekleyin; kontrol geçince sorun kapanır.

Düzeltme nasıl doğrulanır

Düzelttikten sonra Güvenlik sayfasında Yeniden tara düğmesine basın (ya da pazar günkü haftalık taramayı bekleyin); kontrol geçtiği anda sorun kapanır.

Kaynaklar

Bu sayfa işinize yaradı mı?

Son güncelleme 2026-11-07 · Destekle iletişim