BOPLA (Broken Object Property Level Authorization) Nedir?

Ana Sayfa » API Security » BOPLA (Broken Object Property Level Authorization) Nedir?

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.

bopla

BOPLA ile Diğer Yetkilendirme Hataları Arasındaki Fark

  • 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

YORUMLARINIZI PAYLAŞIN

 

Yapılan Yorumlar

BENZER İÇERİKLERİlginizi çekebilecek diğer içerikler

API Nedir? Kısım-1

API Nedir? Kısım-1 30 Mayıs 2025

www.irfankocak.com

İrfan KOÇAK - Tüm Hakları Saklıdır