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…
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: truegibi bir alanı API’ye POST/PUT isteğiyle manuel olarak ekler ve sistem bunu doğrulamadan işler. - Kullanıcıya yalnızca
emailalanı döndürülmesi gerekirken, API cevaptapasswordHash,userRole,createdBygibi 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 💬👇
메타데이터
- 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