Skip to main content
Siber Güvenlik

API Güvenliği: Rate Limiting, Doğrulama, HTTPS, CORS ve OAuth En İyi Uygulamaları

Mart 29, 2026 5 dk okuma 6 views Raw
Ayrıca mevcut: en
API güvenliği ve siber güvenlik konsepti
İçindekiler

API Güvenliği Neden Kritik Öneme Sahiptir?

Modern yazılım ekosisteminde API'ler (Application Programming Interface), uygulamalar arasındaki iletişimin temel yapı taşlarını oluşturur. Bankacılık işlemlerinden sağlık verilerine, e-ticaret platformlarından sosyal medya entegrasyonlarına kadar her alanda API'ler kullanılmaktadır. Bu yaygın kullanım, API güvenliğini siber güvenliğin en kritik bileşenlerinden biri haline getirmiştir.

OWASP API Security Top 10 raporuna göre, API güvenlik açıkları her yıl milyarlarca dolarlık veri ihlallerine neden olmaktadır. Broken Object Level Authorization (BOLA), Broken Authentication ve Excessive Data Exposure gibi açıklar, en yaygın API güvenlik tehditleri arasında yer almaktadır. Bu rehberde, API güvenliğini sağlamak için uygulamanız gereken en iyi pratikleri kapsamlı bir şekilde inceleyeceğiz.

1. Rate Limiting (Hız Sınırlama)

Rate Limiting Nedir?

Rate limiting, belirli bir zaman diliminde bir istemcinin yapabileceği istek sayısını sınırlayan güvenlik mekanizmasıdır. DDoS saldırılarını, brute force girişimlerini ve API kötüye kullanımını önlemek için temel savunma hattıdır.

Rate Limiting Stratejileri

  • Sabit Pencere (Fixed Window): Belirli zaman dilimlerinde (örn. dakikada 100 istek) sabit bir limit uygular.
  • Kayan Pencere (Sliding Window): Daha hassas kontrol için kayar zaman pencereleri kullanır.
  • Token Bucket: Belirli hızda doldurulan bir token havuzu kullanır; her istek bir token tüketir.
  • Leaky Bucket: İstekleri sabit hızda işler, fazla istekleri sıraya alır veya reddeder.

Rate Limiting Uygulama Tavsiyeleri

ParametreÖnerilen DeğerAçıklama
Genel API limiti1000 istek/dakikaStandart kullanıcılar için
Login endpoint5 istek/dakikaBrute force koruması
Kayıt endpoint3 istek/saatSpam hesap önleme
Dosya yükleme10 istek/saatKaynak kötüye kullanım önleme

Rate limiting uygularken, meşru kullanıcıları engellemeden kötü niyetli trafiği filtreleyecek dengeli limitler belirlemek kritik önem taşır. 429 Too Many Requests yanıtıyla birlikte Retry-After header'ı göndermeyi unutmayın.

2. Input Validation (Girdi Doğrulama)

Neden Girdi Doğrulama Şarttır?

Girdi doğrulama, API güvenliğinin en temel bileşenidir. SQL Injection, Cross-Site Scripting (XSS), Command Injection ve XML External Entity (XXE) gibi saldırıların tamamı yetersiz girdi doğrulamadan kaynaklanır.

Girdi Doğrulama İlkeleri

  1. Beyaz liste yaklaşımı: İzin verilen değerleri tanımlayın, geri kalan her şeyi reddedin.
  2. Tip kontrolü: Beklenen veri tipini zorunlu kılın (string, integer, boolean, vb.).
  3. Uzunluk sınırlaması: Maksimum ve minimum karakter uzunlukları belirleyin.
  4. Regex doğrulama: E-posta, telefon numarası gibi alanlar için düzenli ifade kalıpları kullanın.
  5. Encoding: Çıktıda HTML, URL ve SQL encoding uygulayın.

API Request Doğrulama Kontrol Listesi

  • Content-Type header'ının doğrulanması
  • Request body boyut sınırlaması
  • Zorunlu alanların kontrolü
  • Veri tipi ve format doğrulama
  • İç içe nesne derinlik sınırlaması
  • Array boyut sınırlaması
  • Özel karakter filtreleme

3. HTTPS ve Transport Layer Security

HTTPS Zorunluluğu

Tüm API trafiği HTTPS üzerinden gerçekleştirilmelidir. HTTP üzerinden gönderilen veriler, man-in-the-middle (MitM) saldırılarına karşı tamamen savunmasızdır. TLS 1.2 ve üzeri sürümler kullanılmalıdır; TLS 1.0 ve 1.1 sürümleri güvensiz kabul edilir.

HTTPS En İyi Uygulamaları

  • HSTS (HTTP Strict Transport Security): Tarayıcıyı yalnızca HTTPS bağlantı kurmaya zorlar.
  • Sertifika Sabitleme (Certificate Pinning): Beklenen sertifikayı önceden tanımlayarak sahte sertifika saldırılarını önler.
  • Perfect Forward Secrecy: Her oturum için benzersiz şifreleme anahtarları kullanır.
  • HTTP'den HTTPS'e yönlendirme: Tüm HTTP isteklerini otomatik olarak HTTPS'e yönlendirin.

TLS Yapılandırma Karşılaştırması

ÖzellikTLS 1.2TLS 1.3
Handshake süresi2 RTT1 RTT
0-RTT desteğiHayırEvet
Güvensiz cipher'larBazıları desteklenirKaldırıldı
PerformansİyiDaha iyi

4. CORS (Cross-Origin Resource Sharing)

CORS Nedir?

CORS, bir web uygulamasının farklı bir origin'den (kaynak) API istekleri yapmasına izin veren bir HTTP mekanizmasıdır. Doğru yapılandırılmadığında ciddi güvenlik açıklarına yol açabilir.

CORS Güvenlik Kuralları

  1. Wildcard kullanmaktan kaçının: Access-Control-Allow-Origin: * yerine belirli domain'ler tanımlayın.
  2. Credentials ile wildcard: Access-Control-Allow-Credentials: true ile wildcard origin birlikte kullanılamaz.
  3. Preflight istekleri: OPTIONS isteklerini doğru şekilde ele alın.
  4. İzin verilen metodları sınırlayın: Yalnızca gerekli HTTP metodlarına izin verin.
  5. Header kısıtlaması: Access-Control-Allow-Headers ile yalnızca gerekli header'lara izin verin.

CORS yapılandırmasını "çalışsın yeter" mantığıyla gevşek bırakmak, API'nizi cross-origin saldırılara açık hale getirir. Her zaman en kısıtlayıcı yapılandırmadan başlayın ve gerektiğinde gevşetin.

5. API Anahtarları ve Kimlik Doğrulama

API Key Güvenliği

API anahtarları, en basit kimlik doğrulama yöntemidir ancak tek başına yeterli güvenlik sağlamaz. API anahtarlarıyla ilgili en iyi uygulamalar:

  • API anahtarlarını URL parametresi yerine header'da gönderin
  • Anahtarları düzenli olarak rotate edin (her 90 günde bir)
  • Her anahtara minimum yetki prensibi uygulayın
  • Kullanılmayan anahtarları devre dışı bırakın
  • Anahtarları kaynak kodda sabitlenmiş (hardcoded) olarak bırakmayın

OAuth 2.0 ve Token Güvenliği

OAuth 2.0, modern API güvenliğinin standart protokolüdür. Token bazlı kimlik doğrulama için şu kurallara uyun:

  1. JWT token süresi: Access token'lar kısa ömürlü olmalıdır (15-30 dakika).
  2. Refresh token: Uzun ömürlü refresh token'lar güvenli şekilde saklanmalıdır.
  3. Token iptal mekanizması: Compromised token'ları anında iptal edebilmelisiniz.
  4. Scope sınırlama: Token'lara yalnızca gerekli izinleri (scope) verin.
  5. PKCE (Proof Key for Code Exchange): Public client'lar için PKCE akışı kullanın.

6. Ek Güvenlik Önlemleri

API Logging ve Monitoring

Güvenlik olaylarının tespiti için kapsamlı loglama ve izleme şarttır:

  • Tüm authentication başarısızlıklarını logla
  • Olağandışı istek kalıplarını tespit et
  • Gerçek zamanlı uyarı mekanizmaları kur
  • Log verilerini güvenli ve merkezi bir sistemde sakla

API Versiyonlama ve Kullanımdan Kaldırma

API sürüm yönetimi güvenlik için kritiktir:

  • Eski, güvensiz API sürümlerini zamanında kullanımdan kaldırın
  • Sürüm geçiş süreleri için net politikalar belirleyin
  • Deprecation header'ları ile kullanıcıları bilgilendirin

Sonuç

API güvenliği, tek bir önlemle sağlanabilecek bir şey değildir. Rate limiting ile kötü niyetli trafiği sınırlar, girdi doğrulama ile injection saldırılarını önler, HTTPS ile veri aktarımını şifreler, CORS ile cross-origin erişimi kontrol eder ve OAuth ile güçlü kimlik doğrulama sağlarsınız. Bu katmanların tamamını uyguladığınızda, "savunma derinliği" (defense in depth) stratejisini gerçekleştirmiş olursunuz. API güvenliği sürekli bir süreçtir; düzenli güvenlik denetimleri, penetrasyon testleri ve güncel tehditleri takip etmek vazgeçilmezdir.

Bu yazıyı paylaş