kullanici2
Nisan 9, 2026

Dijital dünyada kullanıcı verilerinin gizliliği, sadece sisteme kimin girdiğini (Authentication) bilmekle değil, girdikten sonra hangi verilere dokunabildiğini (Authorization) sıkı bir şekilde denetlemekle mümkündür. Web uygulamalarındaki en sinsi ve yıkıcı güvenlik zafiyetlerinden biri olan IDOR (Insecure Direct Object Reference), yani Güvensiz Doğrudan Nesne Referansı, bu denetim mekanizmasındaki temel bir mantık hatasından kaynaklanır.
2026 yılı itibarıyla OWASP Top 10 listesinde “Erişim Kontrolü Hataları” (Broken Access Control) kategorisinin zirvesinde yer alan bu açık, bir kullanıcının sadece bir parametreyi değiştirerek başkalarına ait özel verilere ulaşabilmesine imkan tanır.
IDOR, bir uygulamanın veritabanındaki bir nesneye (fatura, profil, mesaj, dosya vb.) erişmek için doğrudan bir anahtar (ID) kullandığı ve bu erişim talebi sırasında “bu kullanıcı bu veriyi görmeye gerçekten yetkili mi?” kontrolünü yapmadığı durumlarda ortaya çıkar.
Saldırgan, kendisine sunulan URL, POST gövdesi veya API isteği içerisindeki sayısal veya metinsel bir değeri manipüle ederek, normal şartlarda erişim yetkisi olmayan verilere ulaşabilir. Kurumsal perspektifte IDOR, tüm müşteri tabanındaki verilerin otomatik araçlar yardımıyla hızla çekilebilmesi (Insecure Crawling) anlamına gelir.
IDOR’un temelinde yatan teknik kusur, sunucu tarafındaki kodun kullanıcıdan gelen girdi verisine körü körüne güvenmesidir.
Örnek Senaryo: Kullanıcı kendi ayarlarını görüntülemek istediğinde uygulama şu isteği oluşturur: GET /api/v1/user/settings?user_id=1024
Eğer uygulama güvensizse, kullanıcı 1024 değerini 1025 olarak değiştirdiğinde sunucu, “1025 ID’li kullanıcıyı getir” sorgusunu veritabanına gönderir. Sunucu, isteği yapan oturumun (session) gerçekten 1025 ID’li kullanıcıya ait olup olmadığını doğrulamadığı için, başka bir kullanıcının özel bilgileri ekrana yansıtılır. Bu durum, **”Nesne Seviyesinde Yetki Kontrolü”**nün (Object-Level Authorization) devre dışı kaldığını kanıtlar.
Hassas Veri İfşası: Bir e-ticaret sitesinde order_id=5500 parametresini değiştirerek başkalarının alışveriş geçmişine ve adreslerine erişmek.
Hesap Ele Geçirme: Profil güncelleme formunda account_id=987 değerini değiştirerek başka bir kullanıcının e-posta adresini kendi adresinizle güncellemek ve şifre sıfırlama talebi göndermek.
Veri Silme ve Tahribat: Bir bulut servisinde file_id=12345 isteğindeki ID’yi değiştirerek başkalarına ait dosyaları silm.
Kitlesel Veri Sızıntısı: Basit bir döngü içeren script yardımıyla dakikalar içinde milyonlarca veri kaydı dışarı sızdırılabilir.
KVKK ve Hukuki Yaptırımlar: Kurumun “teknik tedbir” yükümlülüğünü (KVKK Madde 12) yerine getirmediğinin en net kanıtıdır; ağır para cezaları doğurur.
Marka İtibarı: Kullanıcı verilerinin korunmadığı anlaşılan bir platform, pazar payını hızla kaybeder.
IDOR tespiti, otomatik tarayıcıların “iş mantığı” (business logic) hatalarını anlamakta zorlanması nedeniyle genellikle manuel analiz gerektirir:
İki Farklı Kullanıcı Testi: En etkili yöntemdir. Uzman, aynı yetki seviyesinde iki farklı hesap açar. A hesabına ait bir nesnenin ID’sini kopyalar ve B hesabı ile giriş yapmışken bu nesneye erişmeye çalışır.
Tahmin Edilebilirlik Analizi: ID değerlerinin 1, 2, 3... gibi ardışık olması saldırganın işini kolaylaştırır.
Nesne Seviyesinde Yetkilendirme (BOLA): Sunucu, veriyi her çektiğinde sahip bilgisi ile isteği yapan kullanıcının kimliğini eşleştirmelidir: SELECT * FROM faturalar WHERE id = ? AND kullanici_id = ?
Tahmin Edilemez Referanslar (UUID): Sıralı ID’ler yerine, rastgele üretilen UUID‘ler (Örn: 550e8400-e29b...) kullanılmalıdır.
Merkezi Yetkilendirme Katmanı: Yetki kontrolleri her fonksiyonun içinde manuel olarak değil, uygulamanın girişindeki merkezi bir katmanda (Middleware) yapılmalıdır.
IDOR, web uygulamalarında mantıksal güvenliğin en büyük düşmanıdır. Kişisel verilerin korunması, sadece giriş kapısını sağlam yapmakla değil, içerideki her bir veri nesnesinin kime ait olduğunu her istekte yeniden doğrulamakla mümkündür.