API (Uygulama Programlama Arayüzü) Nedir?
API (Application Programming Interface), iki farklı yazılımın veya uygulamanın birbiriyle iletişim kurmasını sağlayan bir kurallar bütünüdür.
Bunu bir restorandaki garson gibi düşünebilirsiniz:
Siz (İstemci): Menüden bir sipariş verirsiniz.
Mutfak (Sunucu): Yemeği hazırlayan sistemdir, ancak oraya doğrudan giremezsiniz.
Garson (API): Siparişinizi mutfağa iletir ve hazırlanan yemeği size geri getirir.
API Güvenliği Neden Bu Kadar Önemli?
API'ler, sistemlerin "arka kapılarına" açılan yollar gibidir. Eğer bir API iyi korunmuyorsa, kötü niyetli kişiler kullanıcı verilerine, finansal bilgilere veya şirketin iç sistemlerine doğrudan erişebilir. Günümüzde siber saldırıların büyük bir kısmı, doğrudan uygulamaların kendisinden ziyade, arkada çalışan API zafiyetlerini hedef almaktadır.
Öne çıkan riskler şunlardır:
Kimlik Doğrulama Zafiyetleri: Sisteme kimin bağlandığının tam olarak kontrol edilmemesi (Broken Object Level Authorization - BOLA).
Aşırı Veri İfşası (Excessive Data Exposure): API'nin, istemcinin ihtiyacı olandan çok daha fazla veriyi (örneğin tüm veritabanı kayıtlarını veya şifre hash'lerini) döndürmesi ve filtreleme işini ön yüze (frontend) bırakması.
Hız Sınırlamasının Olmaması: API'ye saniyede binlerce istek atılarak sistemin çökertilmesi (DDoS) veya şifrelerin kaba kuvvet (brute-force) ile denenmesi.
Temel API Güvenlik Prensipleri
Bir API'yi güvenli hale getirmek için genellikle bir API Ağ Geçidi (API Gateway) arkasında birkaç temel savunma katmanı uygulanır:
Kimlik Doğrulama ve Yetkilendirme (Auth):
Sadece yetkili kişilerin veya uygulamaların API'ye erişebilmesini sağlar. Modern sistemlerde genellikle OAuth 2.0 standartları veya JWT (JSON Web Tokens) kullanılır.
Şifreleme (Encryption):
Verilerin aktarım sırasında araya girilip okunmasını (Man-in-the-Middle) engellemek için tüm API trafiği mutlaka HTTPS/TLS üzerinden yürütülmelidir.
Hız Sınırlandırması (Rate Limiting) ve Kota (Throttling):
Belirli bir IP adresinden veya API anahtarından gelen istek sayısını sınırlandırarak sunucunun aşırı yüklenmesini önler.
Girdi Doğrulama (Input Validation):
İstemciden gelen tüm verilerin, sunucuya işlenmeden önce formatının, tipinin ve güvenilirliğinin sıkı bir şekilde kontrol edilmesidir. SQL Injection ve XSS gibi saldırıları önler.
yazar: Asrın Haktan Şahin

