Owasp TOP 10 API Security API3:2023 te yer alan BOPLA (Broken Object Property Level Authorization) Api geliştirme aşamalarından en çok karşımıza çıkan zafiyetlerden biridir. BOPLA genellikle geliştiricilerin nesne seviyesindeki alanlara (property) yeterli yetkilendirme kontrolü koymamasından kaynaklanır. İlk bakışta basit görünen bu durum aslında hassas verilerin açığa çıkmasına ve yetkisiz kullanıcıların erişmemesi gereken alanlara ulaşmasına neden olabilir.
Modern uygulamalarda, istemci (client) ile sunucu (server) arasındaki veri alışverişi çoğunlukla JSON tabanlıdır. Kullanıcıya ait bilgiler, rol bilgileri veya profil ayarları bu JSON objeleri üzerinden taşınır. Uygulama sadece nesneye erişim kontrolü yapıp, nesne içerisindeki alanların (property) yetkilendirmesini kontrol etmezse, saldırganlar bu boşluğu kullanabilir.
{
"id": 1254,
"username": "mehmet",
"role": "user"
}
Normalde sadece username bilgisini güncelleyebilmesi gereken bir kullanıcı, role alanını da değiştirip kendini admin yapmaya çalışabilir. Eğer arka uç sistem (backend) bu alanı yetkilendirme kontrolünden geçirmiyorsa, saldırgan kolayca yönetici haklarına erişebilir.
BOLA (Broken Object Level Authorization): Bir nesnenin tamamına yetkisiz erişim sağlanmasıdır.
BOPLA (Broken Object Property Level Authorization): Nesneye erişim yetkisi vardır, fakat nesne içindeki bazı alanlara erişim kontrolü yapılmamaktadır.
Yani BOPLA daha ince taneli (granular) bir güvenlik açığıdır. Çoğu zaman geliştiriciler BOLA için kontroller koyar, fakat property bazında kontrolü unutur. Hata uygulamanın güvenlik duvarlarını aşmak için saldırganlara yeni yollar açar.
Güvenlik Riskleri
Yetki Yükseltme (Privilege Escalation): Normal kullanıcıların admin hakları kazanması.
Veri Sızıntısı (Data Exposure): Gizli alanların (ör. salary, credit_limit, is_vip) görüntülenmesi.
İş Süreci Manipülasyonu: E-ticaret, bankacılık veya SaaS sistemlerinde kural dışı işlemlerin yapılması.
BOPLA’nın Önlenmesi
Property Bazlı Yetkilendirme Kontrolleri: Her JSON alanı için, kullanıcının bu alanı görüntüleme veya değiştirme yetkisi olup olmadığı kontrol edilmelidir.
Beyaz Liste Yaklaşımı (Whitelist): İstemciden gelen veriler backend tarafında filtrelenmeli ve sadece izin verilen alanlar işleme alınmalıdır.
ORM ve Framework Desteği: Modern backend framework’leri (ör. Spring, Django, Express) üzerinde alan bazlı erişim kontrolü uygulanabilir.
Derinlemesine Test: API güvenlik testleri yapılırken sadece nesneye değil, nesne içindeki property’lere de odaklanılmalıdır.
Örnek Senaryo 1
{
"id": 421,
"name": "Ayşe Yılmaz",
"iban": "TR120006200012345678901234",
"accountType": "standard",
"creditLimit": 5000
}
Normal şartlarda kullanıcı yalnızca name alanını güncelleyebilmelidir. Ancak backend tarafında property kontrolü yapılmazsa gönderilen istek manipule edilebilir.
{
"id": 421,
"accountType": "premium",
"creditLimit": 100000
}
Sunucu bu değerleri doğrulamadan kaydederse, saldırgan saldırgan hesap türünü ve kredi limitini güncelleyebilir.
Örnek Senaryo 2
{
"username": "irfan123",
"bio": "Kitap okumayı severim.",
"followers": 120,
"email": "[email protected]",
"isAdmin": false,
"internalNotes": "VIP müşteri"
}
Kullanıcıya sadece username
, bio
ve followers
bilgileri lazımdı.
Ama API yanlışlıkla email
, isAdmin
ve internalNotes
alanlarını da döndü.
Sonuç: Saldırgan bu bilgileri kullanarak sistem hakkında çok şey öğrenebilir.
Örnek Senaryo 3
PATCH /api/user/123
Content-Type: application/json
{
“email”: “[email protected]”,
“phone”: “5554443322”,
“isAdmin”: true
}
Eğer backend sadece email
ve phone
alanlarını kontrol etmiyorsa, saldırgan isAdmin: true
ekleyerek kendini admin yapabilir.
Broken Object Property Level Authorization (BOPLA), çoğu zaman fark edilmeyen ama çok tehlikeli bir güvenlik açığıdır. Kullanıcıların sadece nesneye erişim hakları değil, nesnenin içindeki alanlara erişim hakları da ayrı ayrı kontrol edilmelidir.
Unutmayın:
👉 “İstemciye asla gereksiz veri göndermeyin.”
Bu basit ilke bile, çoğu BOPLA zafiyetini önlemenizi sağlar.
Faydalı olması dileği ile.
BOPLA (Broken Object Property Level Authorization) Nedir? - Yorumlar
Yapılan Yorumlar
BENZER İÇERİKLERİlginizi çekebilecek diğer içerikler
API Güvenliği : Görünmeyen Tehditler 04 Eylül 2025
BOLA (Broken Object Level Authorization) Nedir? 25 Ağustos 2025
API Nedir? Kısım-1 30 Mayıs 2025
www.irfankocak.com
İrfan KOÇAK - Tüm Hakları Saklıdır