# API Güvenliği: Temel Prensipler
Modern uygulamaların kalbi API’lerdir. Ancak bir API güvenli değilse bütün sistem savunmasız hale gelebilir.
API güvenliği, sonradan eklenecek bir özellik değil; projenin en başından itibaren düşünülmesi gereken temel bir mimari konudur.
## 1. Authentication
Authentication, API’ye kimin eriştiğini doğrulama sürecidir.
Yaygın yöntemler:
- API Key
- JWT
- OAuth 2.0
## 2. Authorization
Authorization, kullanıcının ne yapabileceğini belirler.
Örneğin:
- Admin tüm verilere erişebilir
- Normal kullanıcı sadece kendi verisini görebilir
Kimlik doğrulama ve yetkilendirme aynı şey değildir.
## 3. HTTPS Kullan
API trafiği mutlaka HTTPS üzerinden yapılmalıdır. HTTP kullanmak veri güvenliği açısından ciddi risk oluşturur.
## 4. Rate Limiting
API’ni spam ve kötüye kullanımdan korumak için rate limit uygulanmalıdır.
Bu sayede:
- DDoS etkisi azaltılır
- Spam istekler engellenir
- API maliyeti kontrol altında tutulur
## 5. Input Validation
Kullanıcıdan gelen veriye asla doğrudan güvenilmemelidir. Tüm inputlar kontrol edilmelidir.
Bu sayede:
- SQL Injection
- XSS
- Zararlı payload
gibi saldırılar engellenebilir.
## 6. API Key Güvenliği
API key asla frontend tarafında açık şekilde tutulmamalıdır.
Doğru yaklaşım:
- Backend tarafında sakla
- .env dosyası kullan
- GitHub’a pushlama
- Gerektiğinde key rotation yap
## 7. Logging ve Monitoring
Şüpheli istekleri, hata oranlarını ve trafik artışlarını izlemek gerekir.
İzlenmesi gerekenler:
- Hata oranları
- Ani trafik artışları
- Başarısız giriş denemeleri
- Şüpheli IP adresleri
## 8. CORS Yönetimi
CORS ayarlarında herkese açık wildcard kullanmak risklidir. Sadece güvenilir domainlere izin verilmelidir.
## 9. Token Süresi
JWT veya access token kullanılıyorsa tokenların süresi sınırlı olmalıdır.
Çalınan bir token uzun süre geçerli kalmamalıdır.
## Sonuç
API güvenliği bir seçenek değil, zorunluluktur. Sağlam authentication, authorization, rate limit ve input validation ile daha güvenli bir sistem kurabilirsin.