BOLA ve BFLA: API'lerde Nesne ve Fonksiyon Düzeyinde Yetkilendirme Zafiyetleri
21 Eylül 2026
Modern uygulamaların çoğu bir API üzerine kuruludur ve API’lerde en sık görülen zafiyetler yetkilendirme hatalarıdır. OWASP API Security Top 10 listesinin ilk iki sırasında yer alan BOLA ve BFLA, tam da bunu anlatır. İkisi de “kimlik doğrulanmış ama yetki kontrol edilmemiş” durumudur; farkları, kontrolün nerede eksik olduğudur.
BOLA — Nesne Düzeyinde Bozuk Yetkilendirme
BOLA (Broken Object Level Authorization), bir kullanıcının başka bir kullanıcıya ait bir nesneye erişmesidir. Web’deki IDOR’un API karşılığıdır. Örneğin GET /api/invoices/1024 çağrısında, sunucu bu faturanın oturum sahibine ait olup olmadığını kontrol etmezse, saldırgan numarayı değiştirerek başkasının faturasına ulaşır.
Neden bu kadar yaygın? API’ler genelde nesne kimliklerini doğrudan yol veya gövdede taşır ve her uç noktada tek tek sahiplik kontrolü yapmayı gerektirir; biri unutulduğunda BOLA doğar.
BFLA — Fonksiyon Düzeyinde Bozuk Yetkilendirme
BFLA (Broken Function Level Authorization), bir kullanıcının yetkisi olmayan bir işlevi/eylemi çağırabilmesidir. Örneğin normal bir kullanıcının, yalnız yöneticiye açık olması gereken DELETE /api/users/55 veya POST /api/admin/settings uç noktasını çağırabilmesi. Burada sorun belirli bir nesne değil, eylemin/rolün kendisidir: normal kullanıcı yönetici işlevine erişmemeli.
İkisinin farkı
- BOLA: “Bu nesne benim mi?” kontrolü eksik (yatay erişim — eşdeğer kullanıcının verisi).
- BFLA: “Bu işlevi yapmaya rolüm yeter mi?” kontrolü eksik (dikey erişim — yetki yükseltme).
Önleme
- Her istekte yetkiyi sunucuda doğrulayın. İstemciden gelen id’ye veya “gizli” uç nokta yollarına güvenmeyin; gizlilik (obscurity) yetkilendirme değildir.
- Nesne erişiminde sahiplik kontrolü yapın (BOLA). Mümkünse kaynağı oturumdan türetin.
- İşlev erişiminde rol/izin kontrolü yapın (BFLA). Yönetici uç noktaları, açıkça rol denetimiyle korunmalı.
- Merkezî ve varsayılan-reddet bir yetkilendirme katmanı kullanın; her uç noktaya dağıtılmış kontroller unutulmaya açıktır.
- Test edin: Düşük yetkili bir hesapla, yüksek yetkili uç noktaları ve başka kullanıcıların nesnelerini çağırmayı deneyin.
Özet
BOLA ve BFLA, API güvenliğinin en yaygın iki açığıdır ve ikisi de eksik yetkilendirmeden doğar: BOLA nesne sahipliğini, BFLA işlev/rol yetkisini kontrol etmez. Çözüm, her istekte sunucu tarafında, varsayılan-reddet ilkesiyle hem nesne hem işlev yetkisini doğrulamaktır.
Kaynaklar: OWASP API Security Top 10, OWASP Authorization Cheat Sheet.
API’lerinizde nesne ve fonksiyon düzeyinde yetkilendirme doğru mu? CyberTestify’ın aktif doğrulama testleri, keşfedilen uç noktalarda kontrollü yetki denemeleri yapar.