API Güvenliği: OWASP API Top 10 Rehberi (2025)

Modern uygulamaların %85'i API çağrıları üzerinden çalışıyor. OWASP API Security Top 10 (güncel sürüm 2023) bu özel yüzey için risk envanteridir. Bu yazıda her bir maddeyi test ve savunma perspektifinden ele alıyoruz.
API1: Broken Object Level Authorization (BOLA/IDOR)
API'lerde en yaygın kritik zafiyet. `GET /api/orders/123` endpoint'i kullanıcının kendi siparişini döndürmesi gerekirken, `/api/orders/456` ile başkasının siparişine erişim sağlanabilir. Her object için ownership kontrolü yapılması gerekir.
Test yöntemi: iki farklı kullanıcı token'ı ile aynı endpoint'i çağırıp başkasının verisine erişim deneyin. Savunma: her DB sorgusunda `user_id = current_user.id` filtresi. ORM seviyesinde middleware, endpoint-level authorization guard.
API2: Broken Authentication
Zayıf JWT doğrulama, session hijacking, weak password reset, missing rate limit. Özellikle JWT'de `alg: none` kabul eden kütüphaneler, symmetric key'i public açıklayan uygulamalar tehlikeli.
Savunma: JWT library güncel (jsonwebtoken 9+), algoritma whitelist (sadece RS256 veya ES256), token expiry kısa (15 dk), refresh token rotation, her auth endpoint'inde rate limit (5/dk).
API3: Broken Object Property Level Authorization
Kullanıcı kendi profilini güncelleyebiliyor — `PATCH /api/users/me` ile. Ama `{role: 'admin'}` body'de gönderirse role'u da değişebilir. Mass assignment zafiyeti.
Savunma: whitelist approach — güncellenebilir alanların listesi açık belirtilmeli, body'den gelen diğer field'lar ignore edilmeli. Rails'te `strong_params`, Laravel'da `$fillable`, Express'te manual filter.
API4: Unrestricted Resource Consumption
Rate limit olmayan endpoint'ler DDoS hedefi olur, pahalı query'ler sunucuyu yere serer. Örn: `GET /api/search?q=*` ile tüm veritabanı çekilebilir.
Savunma: her endpoint için rate limit (Redis-based), pagination zorunlu (max 100 item per page), complex query için timeout, reCAPTCHA veya hCaptcha. Cloudflare WAF rate limiting ek katman.
API5: Broken Function Level Authorization
`DELETE /api/users/123` endpoint'i sadece admin tarafından kullanılmalı ama authorization middleware atlanmış. Normal kullanıcı admin endpoint'ini çağırabiliyor.
Savunma: RBAC middleware her admin endpoint'inde, endpoint-level policy kontrolü, test suite'te authorization test case'leri. Default-deny yaklaşımı: endpoint'in authorization'u yoksa 403 döndürsün.
API6-10: Kısaca Diğerleri
API6 — Unrestricted Access to Sensitive Business Flows: checkout ile ürünü birden çok kez al, coupon birden çok kez uygula. Savunma: idempotency + rate limit. API7 — Server Side Request Forgery (SSRF): user-supplied URL'e request atma. Savunma: URL whitelist, internal IP engelleme.
API8 — Security Misconfiguration: default credential, debug mode on, permissive CORS. Savunma: hardening checklist + security scan. API9 — Improper Inventory Management: eski API versiyonları (v1, v2) hâlâ çalışıyor, deprecated endpoint'ler koruma katmanı dışında. API10 — Unsafe Consumption of APIs: third-party API'den gelen veriye güvenme, response validation yap.
Projeniz veya denetim ihtiyacınız için VefaSec'le konuşun.
Diyarbakır merkezli ekibimiz; kurumsal müşterilere uçtan uca yazılım geliştirme, sızma testi ve siber güvenlik danışmanlığı hizmetleri sunar. Keşif görüşmesi ücretsiz, bağlayıcı değil.