← Back to list

API3:2023 — Broken Object Property Level Authorization

Bir kullanıcı sadece kendi bilgilerini görmeli… ama arka plandaki API ona yöneticilerin rollerini ve gizli sistem etiketlerini de veriyor…

Apifort · 2025-07-16 11:48 · 0 claps · 1.2 min read
#api #api-security #owasp-api-security-top-10 #bopla #cybersecurity
Open on Medium ↗
Wiki topics: LIT · Literature & Writing 🔒 · Cybersecurity 🔧 · Data Engineering

API3:2023 — Broken Object Property Level Authorization

Bir kullanıcı sadece kendi bilgilerini görmeli… ama arka plandaki API ona yöneticilerin rollerini ve gizli sistem etiketlerini de veriyor. Bu sadece bir hata mı? Hayır. Bu, API3:2023 — Broken Object Property Level Authorization açığı. Serimizin ikinci bölümünde veri seviyesinde yetkilendirme açıklarını ele alıyoruz. 🧠🔐

🧩 Bu açık ne anlama geliyor?

Yetkilendirme kontrolleri sadece tüm nesneye değil, nesne içindeki özelliklere (property) özel yapılmalıdır. Eğer bu atlanırsa, kullanıcılar görmemesi veya değiştirmemesi gereken alanlara erişebilir.

📌 Örnek durumlar:

  • Bir kullanıcı, isAdmin: true gibi bir alanı API’ye POST/PUT isteğiyle manuel olarak ekler ve sistem bunu doğrulamadan işler.
  • Kullanıcıya yalnızca email alanı döndürülmesi gerekirken, API cevapta passwordHash, userRole, createdBy gibi alanları da içerir.

Bu durum, sistemdeki gizli, hassas veya ayrıcalıklı bilgilerin açığa çıkmasına neden olur.

⚠️ Neden kritik?

Bu açık genellikle gözden kaçar çünkü:

🔍 İstemci tarafı UI, sadece izinli alanları gösterir. ❌ Ancak backend tarafında yeterli alan bazlı yetkilendirme yapılmaz. Sonuç? API’yi manuel test eden biri, görünmeyen ama erişilebilir tüm alanları görebilir hatta değiştirebilir.

✅ Nasıl korunuruz?

🔒 Field-Level Authorization uygulayın: Her alan için kimin neye erişebileceğini backend’de kontrol edin.

🧼 Response Filtering yapın: Kullanıcıya sadece izinli olduğu alanları dönün. Gerekirse DTO (Data Transfer Object) yapıları kullanın.

🧪 Test edin: – Kullanıcı rollerini değiştirerek farklı alanlara erişim testleri yapın. – API’ye manuel olarak ekstra alanlar gönderin. – Yanıtta istemciye görünmeyen ama dönülen alan var mı kontrol edin.

🛠️ Otomasyon araçları ile veri seviyesindeki yetkilendirme kontrollerini sürekli denetleyin (ör: APIStrike, Postman)

💡 Unutma: Veriyi vermek kadar vermemek de güvenliktir.

🗣️ Sen bu açıkla nasıl baş ediyorsun? Hangi stratejileri tercih ediyorsun? Yorumlarda tartışalım 💬👇

Tunahan Balcı | @Apifort Api Security | Apifort


메타데이터
post_id
0488865e2bc0
slug
api3-2023-broken-object-property-level-authorization-0488865e2bc0
url
https://medium.com/@Apifort/api3-2023-broken-object-property-level-authorization-0488865e2bc0
canonical_url
https://medium.com/@Apifort/api3-2023-broken-object-property-level-authorization-0488865e2bc0
author_url
https://medium.com/@Apifort
status
ok
fetched_at
2026-06-25 12:15:08