Web Altyapısında Büyük-Küçük Harf Duyarlılığının Gizli Tehlikeleri

Web Altyapısında Büyük-Küçük Harf Duyarlılığının Gizli Tehlikeleri

May 06, 2026 security dns case-sensitivity web infrastructure authentication best practices domain management

Küçük Harf Büyük Harf Meselesi Neden Bu Kadar Önemli?

Geliştirme ortamında her şey mükemmel çalışıyor. Test sunucusu sorunsuz koşuyor. Ama üretim ortamında garip hatalar başlıyor—ya da daha kötüsü, güvenlik araştırmacıları hiç beklemediğiniz açıklıkları buluyor.

Çoğu zaman sorun basit bir mantık hatası değildir. İş bu noktada başlıyor: sisteminizin karakter büyüklüğünü yanlış yorumlaması.

Neden Bu Önemli?

Çoğu geliştiriciye göre bu konuda herkes aynı fikirde: domain adları büyük küçük harf duyarlı değildir. example.com, Example.com ve EXAMPLE.COM tamamen aynıdır. Basit, değil mi?

Peki bunlara ne dersiniz:

  • Kimlik doğrulama sisteminizdeki e-posta adresleri
  • Veritabanında tutulan kullanıcı kimlikleri
  • Bulut depolamanızda saklanan dosya yolları
  • Hizmetinizin tükettiği API uç noktaları
  • SSL sertifika doğrulama mekanizması

Altyapınızın farklı bölümleri karakterleri farklı şekilde işlediği andan itibaren güvenlik sorunı ortaya çıkıyor.

Gerçek Hayattaki Bir Saldırı Senaryosu

Şunu düşünün: Uygulamanız kullanıcıları e-posta adresi ile doğruluyor ve e-postaları veritabanında küçük harfle saklıyor. Mantıklı bir yaklaşım. Ama OAuth sağlayıcınız John.Smith@gmail.com formatında karışık harfli adres döndürüyor. Kimlik doğrulama sisteminiz normalleştirme yapmadan metin karşılaştırması yapıyor.

Bir saldırgan john.smith@gmail.com ile kayıt oluşturuyor, hesabına giriş yapıyor, ardından sisteminizde John.Smith@gmail.com denemesini yapıyor. Eğer büyük küçük harf işlemi tutarsız ise şunlar olabilir:

  • Hız kısıtlamalarını aşma (farklı kullanıcı olarak görünme)
  • Yüksek yetkilere sahip yinelenen hesaplar oluşturma
  • Güvenlik denetim günlüklerini atlama
  • Erişemeyecekleri kaynaklara ulaşma

Bu sorun özellikle şu durumlarda daha tehlikeli:

Uluslararası Domain Adları (IDN) – Unicode kuralları dile göre değişir. Türkçedeki noktasız 'i' ASCII standartlarını bozar. Bazı karakterlerin büyük harfi bile yoktur.

Bulut Depolama Sistemleri – AWS S3'te nesne anahtarları büyük küçük harf duyarlı, ama kova adları değildir. Burada karışıklık veri sızıntısı ya da yetki yükseltmesine neden olabilir.

DNS Kayıtları – DNS sorguları büyük küçük harfe duyarlı olmasa da, uygulamanızın DNS doğrulaması olabilir. Joker sertifikalar ve CNAME doğrulaması saldırı yüzeyine dönüşebilir.

Altyapınızı Nasıl Korursunuz

1. Normalleştirme Standardı Belirleyin

Büyük küçük harf kurallarını veritabanı seviyesinde değil, uygulama seviyesinde tanımlayın. Tüm girdileri hemen alındıklarında normalleştirin.

# Doğru yol: Sınırda normalleştirin
def normalize_email(email):
    return email.lower().strip()

def authenticate_user(email):
    normalized = normalize_email(email)
    user = User.query.filter_by(email=normalized).first()
    return user

2. Unicode'u Destekleyen Kütüphaneler Kullanın

Uluslararası içerikle çalışıyorsanız kendi çözümünüzü yazmayın. Bunu yapması için tasarlanmış kütüphaneleri tercih edin:

  • Python: unicodedata
  • JavaScript: Yerleşik String.localeCompare()
  • Go: Unicode desteği olan strings paketi

3. Sistemler Arası Test Yapın

Uygulamanız yalnız başına değildir. Şunlarla test edin:

  • DNS sağlayıcınızın API'si
  • SSL sertifika verenin doğrulama sistemi
  • Üçüncü taraf OAuth sağlayıcıları
  • Bulut depolama hizmeti
  • CDN'inizin kural motoru

Her sistem nasıl davrandığını belgelendirin ve tutarlılığı sağlayın.

4. Katı Girdi Doğrulaması Yapın

Dış sistemlerin aynı şekilde işlediğini varsaymayın. Entegrasyon noktalarında her verileri doğrulayıp normalleştirin.

// Dış API çağrıları yapmadan önce
const normalizeForAPI = (input, format = 'lowercase') => {
  const normalized = format === 'lowercase' 
    ? String(input).toLowerCase() 
    : String(input);
  return normalized.trim();
};

5. Büyük Küçük Harf Sorunlarını Günlüğe Kaydedin

Şüpheli harf varyasyonları için uyarılar oluşturun:

def detect_case_variance(email):
    normalized = email.lower()
    if email != normalized:
        logger.warning(f"Harf varyasyonu saptandı: {email} vs {normalized}")
        # Potansiyel saldırı desenlerini araştırın

6. İyi Altyapı Uygulamalarını Takip Edin

Domain kaydı veya DNS yapılandırması yaparken şu ilkeleri uygulay:

  • Kodunuzda domain adlarını her zaman küçük harfle yazın
  • DNS kayıtlarını tutarlı harf standardı ile saklayın
  • API'nin büyük küçük harf duyarsız özelliklerine güvenin
  • Altyapı kodu belgelerinizde harf işleme stratejinizi yazın

Sonuç

Güvenlik sadece güçlü şifreler ve HTTPS hakkında değildir. Tüm ekosisteminiz verileri nasıl işliyor bunu anlamakla ilgilidir. Harf büyüklüğündeki küçük bir tutarsızlık, kimlik doğrulama katmanından depolama katmanına ve API entegrasyonlarına kadar her yere yayılabilir.

Bu sorunları erken yakalayan geliştiriciler bunları yapan insanlardır:

  1. Varsayımlara sorgu sorun – Sistemlerin verileri nasıl normalleştirdiğini varsaymayın
  2. Uç durumlarda test edin – Harf varyasyonları güvenlik testlerinizin parçası olsun
  3. Davranışı belgelendirin – Her sistem harf büyüklüğünü nasıl işlediğini yazın
  4. Tutarlı normalleştirin – Bir standart seçip her yerde onu uygulayın

Gelecekte bu konuya bakanlar (saldırganlar olsa bile) teşekkür edecekler.

Read in other languages:

RU BG EL CS UZ SV FI RO PT PL NB NL HU IT FR ES DE DA ZH-HANS EN