API Güvenlik Implementasyonu
API'lar modern yazılım mimarisinin merkezindedir ve OWASP raporlarına göre en yaygın saldırı vektörlerinden birini oluşturur. Bu rehber, OAuth 2.0, JWT, mTLS ve input validation gibi güvenlik mekanizmalarının hands-on implementasyonuna odaklanır.
OWASP API Security Top 10 (2023): Kritik Zafiyetler
OWASP, API'lara özgü 10 yaygın güvenlik problemini tanımlamıştır. Her zafiyeti anlamak, güvenli API tasarımının temelini oluşturur.
| # | Zafiyet | Açıklama | Etki Seviyesi | Smart Maple Çözümü |
|---|---|---|---|---|
| 1 | Broken Object Level Authorization (BOLA) | Kullanıcılar diğer kullanıcıların kaynaklarını erişebilir | Kritik | Kaynak bazlı yetki kontrol (RBAC/ABAC) |
| 2 | Broken Authentication | Token, password yönetimi zafiyetleri | Kritik | JWT + OAuth 2.0 implementasyonu |
| 3 | Broken Object Property Level Authorization | Hassas field'leri expose etme | Yüksek | Field-level filtering ve encryption |
| 4 | Unrestricted Resource Consumption | Rate limiting eksikliği, DoS zaafiyetleri | Yüksek | Token bucket + Redis rate limiter |
| 5 | Broken Function Level Authorization | İşlev bazlı yetki eksikliği | Yüksek | Scope-based authorization |
| 6 | Unrestricted Access to Sensitive Business Flows | İş mantığı exploit edilebilir | Orta | Flow validation ve step completion checks |
| 7 | Server-Side Request Forgery (SSRF) | API'nın iç kaynaklara erişimi sağlama | Yüksek | Whitelist validation, network segmentation |
| 8 | Security Misconfiguration | Yanlış yapılandırma ve default ayarlar | Orta | Infrastructure as Code, security scanning |
| 9 | Improper Inventory Management | Eski/hata API versiyonları exposed | Orta | API versioning stratejisi ve deprecation |
| 10 | Unsafe Consumption of APIs | Harici API'lardan güvenli veri alma başarısızlığı | Orta | Input validation, timeout mechanisms |
Broken Object Level Authorization (BOLA)
BOLA, API'ların en yaygın zafiyetidir. Örneğin, kullanıcılar kendi ID yerine başka birinin ID'sini kullanarak diğer kullanıcıların gizli verilerine erişebilir. Çözüm, JWT token'ında bulunan user ID'yi request'deki resource ID'siyle kontrol eden authorization middleware'i kullanmaktır. Her kaynağa erişim öncesi, kullanıcının o kaynağa erişme hakkı olup olmadığı doğrulanmalıdır.
Broken Authentication
JWT'nin kötü implement edilmesi sık görülen sorundur. Token süresi çok uzun ayarlanması, refresh token döndürülmesinin unuttulması, weak cipher algoritmaları kullanımı ve token revocation mekanizmasının olmaması yaygın hatalarıdır. Doğru implementasyon, OAuth 2.0 standartlarına uygun JWT akışı kullanmaktır.
OAuth 2.0: Modern Authentication Standardı
OAuth 2.0, kullanıcıların şifrelerini paylaşmadan authorization sağlayan, RFC 6749 ve RFC 6750 standartları ile tanımlanan framework'tür. Dört ana grant type vardır.
Authorization Code Flow (Web ve Mobile Apps)
Bu yöntem, web uygulamaları ve native mobile apps için en güvenli seçimdir. Akış şöyledir: Kullanıcı uygulamaya tıklar, uygulama authorization server'a yönlendirir, kullanıcı oturum açar ve izin verir, server authorization code döndürür, uygulama backend'i bu kodu access token ile değiştirir ve sonra protected resource'lara erişilir.
PKCE (Proof Key for Code Exchange), mobile apps'te client_secret'ı saklamanın imkânsız olması nedeniyle eklenir. Client random bir code_verifier oluşturur, bu verifier'ın hash'i code_challenge haline gelir. Authorization request'e code_challenge eklenir, sonraki token request'e ise code_verifier eklenir. Server bu ikisinin eşleşip eşleşmediğini kontrol eder. Bu mekanizma, authorization code'un çalınması durumunda saldırganın onu kullanmasını engeller.
Client Credentials Flow
Backend servisler arasında microservices için Client Credentials Flow kullanılır. Servisler birbirlerine service-to-service iletişiminde client_id ve client_secret ile authorization server'dan token alır. Bu token, uygulamanın backend'inde cached olabilir, böylece her request'te yeni token almaya gerek kalmaz.
Device Flow
Smart TV'ler, printers gibi input device'ların sınırlı olduğu cihazlar için Device Flow vardır. Cihaz authorization server'a request gönderir, server user code ve device code döndürür. Kullanıcı tarayıcıda user code'u girer ve cihaz polling yaparak device code'u exchange eder.
JWT: Yapı ve Best Practices
JWT (JSON Web Tokens) stateless authentication için kullanılan token formatıdır. İki ana ayrı forma bölünür: Header (algoritma ve token type), Payload (kullanıcı bilgisi, izinler, expiration) ve Signature (header ve payload'un imzası).
RS256 vs HS256
RS256 (asymmetric) RSA public/private key çifti kullanır. Public key public olabilir, private key sadece authorization server'da saklanır. HS256 (symmetric) tek bir shared secret kullanır. RS256 microservices için ideal, HS256 single service yapılarında kullanılabilir. Fintech uygulamalar için RS256 ve regular key rotation önerilir.
JWT Best Practices
Access token'ı kısa vadeli tutun (15 dakika). Refresh token'ı uzun vadeli tutun (7 gün) ve her kullanımda döndürün. Logout olunduğunda, token'ı revoke etmek için Redis blacklist kullanın. Token imzalama için private key'i düzenli değiştirin (6 ayda bir), eski public key'lerle eski token'ları doğrulamaya devam edin. Token rotation mekanizması, refresh token'ı her kullanımda yenisiyle değiştirir, böylece token leak'i riskini minimalize edilir.
Rate Limiting
Rate limiting, belirli bir süre içinde bir kullanıcı veya IP adresinden kaç request yapılabileceğini kontrol eder. API güvenliğinin temel bileşenlerinden biridir ve Token Bucket, Sliding Window gibi algoritmalarla implement edilir. Limit aşıldığında 429 (Too Many Requests) status kodu ve Retry-After header'ı döndürülür.
Rate limiting ve CORS güvenliği hakkında detaylı bilgi için API Güvenlik Stratejisi: Zero Trust Yaklaşımı rehberimize bakın.
API Key Yönetimi ve Secrets Management
API key'ler genellikle third-party developer'lar veya service-to-service iletişimi için kullanılır. Üretilen key, kullanıcıya tek kez gösterilir. Veritabanında SHA-256 hash'i saklanır. Key çalınması durumuna karşı, key'ler 90 günlük bir expiration süresi ayarlanmalıdır. Production ortamında, secret'ler environment variable'lar veya secret management tool'ları (HashiCorp Vault, AWS Secrets Manager) ile yönetilmelidir. Hardcoded secret'ler hiçbir zaman kullanılmamalıdır.
Security Headers ve CORS
Security headers, tarayıcıya API'nin nasıl kullanılabileceğini söyler. Content-Security-Policy, XSS saldırılarını önler. X-Frame-Options, clickjacking saldırılarını engeller. Strict-Transport-Security, sadece HTTPS üzerinden iletişimi zorlar. Permissions-Policy, tarayıcı özelliklerinin (geolocation, camera) kullanımını kontrol eder.
CORS (Cross-Origin Resource Sharing), belirli origin'lerin API'ye erişebilmesini kontrol eder. Whitelist yapılmalı, production ortamında joker ('*') kullanılmamalıdır. CORS yapılandırması ve güvenli/güvensiz konfigürasyon örnekleri için API Güvenlik Stratejisi: Zero Trust Yaklaşımı rehberimize bakın.
Input Validation
API'ye gelen veriler mutlaka validate edilmelidir. Email format kontrolü, password complexity kuralları (minimum 12 karakter, uppercase, lowercase, number, special character), phone number format kontrolü yapılmalıdır. XSS saldırılarını önlemek için, kullanıcı input'unda HTML special character'ları kontrol edilmelidir. Pydantic (Python) veya Joi (Node.js) gibi validation library'ler kullanılması önerilir.
mTLS: Service-to-Service Güvenliği
Microservices arasında şifreli ve mutually authenticated bağlantı sağlamak için mTLS (Mutual TLS) kullanılır. Her service'in kendi SSL certificate'i vardır. Gelen request'i doğrularken, client certificate'ın server tarafından verify edilmesi gerekir. Server certificate'ı da client tarafından doğrulanır. Bu double verification, service'lerin birbirinin identity'sini doğrulayabilmesini sağlar.
API Endpoint Security Checklist
API'nızı deploy etmeden önce şunları kontrol edin:
- OAuth 2.0 + PKCE implementasyonu
- RS256 ile JWT signing (asymmetric cryptography)
- Refresh token rotation mekanizması
- Rate limiting implementasyonu (token bucket algorithm)
- Token revocation ve blacklist mekanizması
- Security headers (Content-Security-Policy, HSTS vb.)
- CORS restrictive configuration
- Input validation (Pydantic/Joi)
- OWASP BOLA protection (object-level authorization)
- mTLS for service-to-service communication
- SQL/NoSQL injection prevention
- API key secret rotation
- Comprehensive logging ve audit trails
- API versioning stratejisi
- Deprecation policy belgelendirmesi
- WAF (Web Application Firewall) rules
Sonuç
API güvenliği, tek adımlı bir proje değildir. Continuous learning, threat modeling ve defensive programming'in birleşimidir. OAuth 2.0 standartlarına uyarak, JWT'yi doğru şekilde implement ederek ve OWASP API Top 10'u göz önüne alarak, enterprise-grade güvenlik sağlayabilirsiniz.
Smart Maple'ın Ankara ofisi, Node.js ve Python mühendisleri ile tam stack API güvenliği audit'i, implementasyonu ve devam eden security consultancy sunmaktadır. Aylık 3.500 USD investment ile, kodunuz production-ready security standartlarına ulaşır.
Bir sonraki adım: API güvenliğinizi optimize etmek için Smart Maple'ın API Geliştirme Hizmetleri hakkında bilgi alın.
İlgili Makaleler
MLOps Rehberi: Makine Öğrenmesi Modellerini Production'a Taşıma
Giriş: MLOps Nedir ve Neden Önemlidir? Makine öğrenmesi modelleri geliştirmek günümüzde nispeten kolaydır. Açık kaynak kütüphaneleri kullanarak son derece başarılı modeller oluşturabiliriz. Ancak bu modelleri production ortamına taşıyarak, ölçeklendirebilir, güvenilir ve sürdürülebilir şekilde çalıştırmak tamamen farklı bir hikayedir. Araştırmalara göre, veri bilimcileri tarafından geliştirilen makine öğrenmesi modellerinin %87'si hiçbir zaman production ortamına ulaşmaz. Bu başarısızlı
Devamını Oku: MLOps Rehberi: Makine Öğrenmesi Modellerini Production'a TaşımaLLM Fine-Tuning ve Özel Model Eğitimi Rehberi [2026]
LLM Fine-Tuning: Kurumsal Yapay Zeka Stratejisinin Temel Taşı Büyük dil modelleri (LLM), genel amaçlı metin üretimi ve anlama konusunda etkileyici performans sergiliyor. Ancak kurumsal ortamlarda belirli bir alan, terminoloji veya iş sürecine uyum sağlamaları gerektiğinde, genel bilgileri çoğu zaman yetersiz kalıyor. Bu noktada fine-tuning, yani ince ayar süreci devreye giriyor. Fine-tuning sayesinde mevcut bir temel modeli, kendi verileriniz ve ihtiyaçlarınız doğrultusunda özelleştirmek
Devamını Oku: LLM Fine-Tuning ve Özel Model Eğitimi Rehberi [2026]Bilgisayarlı Görü Uygulamaları: Nesne Tespiti, OCR ve Endüstriyel AI
Bilgisayarlı Görü Uygulamaları: Endüstriyel ve Medikal AI'nin Temel Teknolojisi Bilgisayarlı görü, makine öğrenmesinin en etkili alanlarından biridir. Türkiye'de yaşanan dijital dönüşüm sürecinde, özellikle üretim, sağlık ve lojistik sektörlerinde görü tabanlı otomasyon kritik hale gelmiştir. Smart Maple olarak Ankara'da geliştirdiğimiz çözümler, son beş yılda 150+ kuruluşunun üretim verimliliğini ortalama %35 oranında artırmıştır. Bu rehberde, bilgisayarlı görü teknolojisinin iş değeri
Devamını Oku: Bilgisayarlı Görü Uygulamaları: Nesne Tespiti, OCR ve Endüstriyel AI
