Uygulamanızın mobil App'si, Web tarayıcısı ve masaüstü yazılımı tek bir merkezden besleniyorsa ortada kesinlikle bir REST API mimarisi (Sunucu arası köprü) vardır. Modern webin temeli olan REST API mantığını çözerken, bu uç noktaların (Endpoints) kötü niyetli Botlardan Corsair / JWT kalkanlarıyla nasıl korunacağını açıklıyoruz.
REST API (Representational State Transfer) Nedir?
Kısaca API (Application Programming Interface), kapalı bir yazılıma "Arka kapıdan kurallı olarak girmek ve veri alıp vermektir". REST, Web dünyasındaki HTTP standartlarını (GET, POST, PUT, DELETE) kullanarak bir veri alışverişi yapmanın adıdır.
Eskiden web siteleri hem arayüzü (HTML/CSS) hem de veritabanını tek sayfada yapardı. Şimdi ise Modern SPA (Single Page Application - React/Vue) siteler ilk girişte sadece çıplak bir tasarım indirir; verileri (Ürünler, Haberler) alttan REST API çağrısı (`api.siteniz.com/urunler`) atarak sadece JSON modunda temiz bir şekilde çeker.
En Büyük Tehlike: Açık Uçlu (Public) API'ler
Eğer `siteniz.com/api/uyeler` uç noktanız açıkta ise, internetteki herhangi bir yazılımcı Curl ile çekerek sizin veritabanınızı 5 dakikada sömürür. API'leri korumanın altın kuralları ve standartları şunlardır:
1. CORS (Cross-Origin Resource Sharing) Kısıtlaması
Tarayıcıların API'yi güvende tutmasının bekçisi CORS polikasıdır. Siz backend'de (Örn: NodeJs veya PHP) şu izni vermelisiniz: "Bu API uç noktalarına sadece www.benimsitem.com adresi (frontend) erişebilir!"
// PHP için CORS kalkanı
header("Access-Control-Allow-Origin: https://www.benimsitem.com");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type, Authorization");
Kötü niyetli bir hacker kendi sitesinden JQuery ve AJAX ile sizin API'nizi çekmeye çalıştığında, tarayıcısı ona kırmızı CORS Error kilidini vurur.
2. Kimlik Doğrulama: JWT (JSON Web Tokens) Sırrı
Oturum (Session) verileri server tabanlıdır ancak REST API Kuralları "Stateless" (Durumsuz) işlemeyi zorunlu kılar. API sunucusu kullanıcının kim olduğunu unutur.
Bunun modern çözümü Token yani Jeton vermektir.
- Kullanıcı giriş yapar (Kullanıcı Adı, Şifre).
- Server bunu doğrular ve ona içinde yetkileri (Admin) olan şifreli uzunca bir harf/rakam jeneratörü verir (JWT Jetonu).
- Kullanıcı artık her HTTP API isteğinde (Bearer Token) bu jetonu kargo ile sunucuya yollar. Sunucu şifreyi çözdüğü an kapıyı açar. Token çalınsa bile saatli olduğu (Örn: 24 saat expire) için belli zaman sonra patlar.
🚀 Yüksek API Limitlerine Dayanan Altyapı
Mobil uygulamalarınız anlık olarak binlerce HTTP GET isteği gönderdiğinde sunucunuz yokuş yukarı gitmemelidir. HazalHost VDS sistemlerinde TCP bağlantı sınırları ve güvenlik mimarisi %100 limitsiz erişiminiz için hazır dizayn edilmiştir.
3. Rate Limiting (Kaba Kuvvet / Brute Force Kalkanı)
Bir program yazarak Login API'nize saniyede 500 POST şifre denemesi yapan bir saldırgan hem sunucuyu CPU olarak çökertir, hem de şifre kırabilir. Modern API'ler her kullanıcının İP tabanlı istek limitini kontrol eder (Örn: Saniyede max 5 istek). Tıpkı Cloudflare'in veya HazalHost Layer7 kalkanlarının yaptığı gibi "Çok hızlı gidiyorsun, biraz bekle" tokadını vurmalısınız (HTTP 429 Too Many Requests).
Sonuç
API yazmak kolaydır, ancak "Güvenli API" tasarlamak ustalık ister. SSL/TLS üzerinden gitmeyen hiçbir isteğin (http) sisteme girmesine izin vermemeli, CORS ve JWT kurallarını harfiyen yazılımınızın temel Kernel'ine dizayn etmelisiniz.