API GüvenliğiOWASPWeb GüvenliğiPentest

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

16 Nisan 202611 dk okumaVefaSec Editör
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.

İlgili Yazılar