API Güvenliği Ne Demektir?
API (Application Programming Interface), sistemlerin dış dünyaya açılan kapısıdır. Eğer bu kapı doğru şekilde korunmazsa, saldırganlar içerideki verilere kolayca erişebilir.
API güvenliği, bu açıklara karşı alınan tüm teknik ve mantıksal önlemlerin genel adıdır.
Kısacası:
API varsa, açık da vardır. Açık varsa, güvenlik şarttır.
Neden Önemlidir?
- API’ler genellikle istemci (frontend) ile sunucu (backend) arasındaki en net veri akış noktasıdır.
- Kötü yapılandırılmış bir API ile kullanıcı verileri, oturum bilgileri, ödeme verileri sızabilir.
- Özellikle mobil uygulamalarda ve modern SPA (Single Page App) yapılarında çoğu işlem API üzerinden döner.
Saldırı Yüzeyleri (Yani En Sık Hedef Alınan Noktalar)
- Kimlik Doğrulama Eksikliği
API'ye herkes erişebiliyorsa, kullanıcı ayrımı yapmadan veri sızar. - Rate Limit Olmaması
Bir saldırgan milyonlarca istek atarak brute-force deneyebilir ya da sistemi kilitleyebilir (DoS). - Veri Şifrelemesinin Olmaması
HTTPS olmadan çalışan API’lerde, paketler ortada dinlenebilir (man-in-the-middle). - Yetkilendirme Sorunları
Bir kullanıcının, başkasının verisine erişmesine neden olabilir (örnek: /api/user/12345). - Girdi Denetiminin Eksikliği
XSS, SQL Injection, Command Injection gibi saldırılar API üzerinden gönderilen parametrelerle yapılabilir.
Güvenli Bir API İçin Alınması Gereken Önlemler
1. Authentication (Kimlik Doğrulama)
- Her API isteği bir kullanıcıya ait olmalı.
- JWT (JSON Web Token), OAuth 2.0 gibi sistemlerle istekler imzalanmalı.
2. Authorization (Yetkilendirme)
- Kullanıcı sadece kendine ait verilere erişebilmeli.
- Örn: /api/users/me çağrısı, başka bir kullanıcıya yönlendirilmemeli.
3. Rate Limiting / Throttling
- IP başına saniyede belirli sayıda istek sınırı konulmalı.
- Cloudflare, NGINX veya API Gateway’lerle sağlanabilir.
4. HTTPS Kullanımı (TLS Şifreleme)
- Tüm API endpoint’leri sadece HTTPS üzerinden çalışmalı.
- Şifrelenmemiş API'ler, MITM saldırılarına açıktır.
5. Input Validation
- API’ye gelen her veri mutlaka kontrol edilmeli (type check, whitelist).
- SQL, komut veya script içeren girdiler engellenmeli.
6. CORS Ayarları
- Hangi alan adlarının API’ye erişebileceği net şekilde belirlenmeli.
- Gelişigüzel Access-Control-Allow-Origin: * kullanımı büyük bir açıktır.
7. Loglama ve İzleme
- Her API isteği kayıt altına alınmalı (log).
- Anormal kullanım durumunda anlık bildirim sistemleri kurulmalı.
8. Versionlama (API v1, v2, vs.)
- API yapısı zamanla değişir. Güvenlik ve düzen için versiyonlama yapılmalıdır.
API Güvenliğinde Kullanılan Bazı Araçlar
- OWASP ZAP → API test ve zafiyet analizi
- Postman + Burp Suite → Manuel testlerde proxy destekli analiz
- JWT.io → Token analiz ve doğrulama
- API Gateway (AWS, NGINX, Kong) → Trafik kontrolü ve filtreleme
Tavsiye Edilen Standartlar ve Kaynaklar
- OWASP API Security Top 10
- API Güvenliği için özel eğitimler: TryHackMe, HackTheBox, Udemy
- Kitap: API Security in Action
Sonuç:
Günümüzde, bir web sitesinden çok daha fazla açıklık API’lerde görülmektedir.
Eğer bir sistem API ile dış dünyaya açıksa, bu uç noktaların her biri güvenlik açısından dikkatle ele alınmalıdır.
API = Kapı
Siber güvenlik = Kilit
Her kapı kilitsiz olmaz.
Yorumlarda katkılarınızı ve sorularınızı bekliyorum.