Repository navigation
Rate Limit ve Koruma
English · Türkçe · Languages / Diller
Kapsam: JSON API Forge 0.5.1 · İnceleme: 17 Eylül 2026 · Dil: Türkçe
Forge token-bucket limitleriyle pre-auth IP, principal ve isteğe bağlı route bütçeleri uygular. Memory backend worker-local, Redis backend ortak atomik bütçe içindir. Her worker'a ayrı 120 istek sınırı koymak bütün cluster'da tek 120 istek bütçesi oluşturmaz.
| Katman | Neyi sınırlar? |
|---|---|
| Pre-auth | Kimlik çözülmeden önce istemci IP trafiği |
| Principal | Kimliği doğrulanan çağıranın genel bütçesi |
| Route | Normalize route kimliği için daha dar bütçe |
| Concurrency | Aynı anda yürüyen iş sayısı |
| Body/result limitleri | Bellek ve veri hacmi |
| Timeout/queue wait | Bekleme süresi |
rate_limit.fail_open varsayılanı false'tur. Cache'in fail-open tercihini rate limiter'a bilinçsizce taşımayın. Redis kesintisinde kullanılabilirlik ve koruma arasındaki davranış staging'de denenmelidir.
protection.trusted_proxy_cidrs, yalnız doğrudan peer belirtilen aralıktaysa forwarded client-IP/protocol değerlerine güvenilmesini sağlar. trusted_hosts beklenen hostları; security.require_https, allowed_ips, denied_ips uygulama sınırlarını tanımlar.
{
"protection": {
"trusted_proxy_cidrs": ["127.0.0.1/32"],
"trusted_hosts": ["api.example.com"],
"max_request_body_bytes": 1048576,
"max_concurrent_requests": 100,
"request_timeout_seconds": 15,
"reject_when_saturated": true
},
"security": {"require_https": true}
}Bu örnek yalnız proxy gerçekten loopback'ten bağlanıyorsa doğrudur. Gerçek topolojinize göre CIDR seçin. Bütün interneti trusted proxy ilan etmeyin. Editörün EDITOR_TRUSTED_* politikası ayrı ayarlanır.
CORS bir browser davranışıdır; API key veya row authorization yerine geçmez. Proje cors_origins, cors_methods, cors_headers, cors_expose_headers, cors_allow_credentials ve cache süresini kullanır. Origin yalnız scheme+authority içerir; path/query eklenmez. İhtiyacınız olmayan origin ve header'ları açmayın.
ASGI body limiti alınan chunk'ları sayar; yalnız Content-Length değerine güvenmez. Limit aşımında 413, rate aşıldığında 429, doygunluk/bağımlılık sorunlarında 503 gibi sonuçlar beklenir. Reverse proxy'nin kendi upload ve timeout sınırları ayrıca vardır; en küçük sınır geçerli sonucu belirler.
WebSocket bağlantı açılış limiti, bağlantı içindeki mesaj hızını otomatik çözmez. Realtime ayarlarıyla birlikte değerlendirin. Tam alan/varsayılan tablosu güvenlik ve koruma modellerinde bulunur.
Bu sayfa aşağıdaki sabit commitlerdeki davranışı açıklar. Yeni bir sürümde aynı davranışın sürdüğünü varsaymayın.
main/framework/rate_limit.pymain/framework/protection.pymain/framework/config.pymain/docs/31-Reverse-Proxy-Trust-TLS-and-Client-IP.md