CB DIGITAL
Tüm Makalelere Dön
PHP & Laravel
2 Mart 2026

Laravel 11 ile API Rate Limiting (Hız Sınırlama) Nasıl Yapılır?

Cengiz Bozdemir
Cengiz BozdemirKurumsal Yazılım Mimarı
Laravel 11 ile API Rate Limiting (Hız Sınırlama) Nasıl Yapılır?

📌 Rehber Özeti & Hedef Çıktı

API endpoint'lerini brute-force, web scraping ve DDoS saldırılarına karşı IP veya kullanıcı bazlı hız sınırlandırma ile koruma adımları.

1. Giriş ve Karşılaşılan Temel Zorluklar

Giriş sayfasına ya da ödeme sorgulama endpoint'ine dakikada binlerce istek atılması sunucuyu çökertebilir veya veri hırsızlığına yol açabilir.

Modern kurumsal yazılım mimarisinde bu adımı doğru tasarlamak; hem uygulamanın bakım maliyetini (maintainability) düşürür hem de gelecekteki ölçekleme (scaling) süreçlerinde refactor ihtiyacını en aza indirir. Bu rehberde, sektörde kabul görmüş standartlar ışığında adım adım uygulamayı ele alıyoruz.

2. Ortam Hazırlığı ve Gerekli Bağımlılıklar

Geliştirmeye başlamadan önce sistem ortamınızın ve ilgili paketlerin hazır olduğundan emin olmalısınız. Terminalinizde aşağıdaki komutları çalıştırarak ilgili yapılandırmayı tamamlayın:

  • Adım: AppServiceProvider dosyasında RateLimiter tanımları yapın.
  • Adım: Rotalarınıza 'throttle:api' veya özel limitör adını atayın.

3. Uygulama Mimarisi ve Kod Örneği

Aşağıdaki kod bloğunda, temiz kod (Clean Code) prensiplerine ve SOLID standartlarına uygun olarak tasarlanmış örnek implementasyonu inceleyebilirsiniz:

<?php

// app/Providers/AppServiceProvider.php
use Illuminate\Support\Facades\RateLimiter;
use Illuminate\Cache\RateLimiting\Limit;
use Illuminate\Http\Request;

public function boot(): void
{
    RateLimiter::for('api', function (Request $request) {
        return $request->user()
            ? Limit::perMinute(120)->by($request->user()->id)
            : Limit::perMinute(30)->by($request->ip());
    });

    RateLimiter::for('sms-send', function (Request $request) {
        return Limit::perMinute(3)->by($request->ip())->response(function () {
            return response()->json([
                'status' => 'error',
                'message' => 'Çok fazla deneme yaptınız. Lütfen 1 dakika bekleyin.'
            ], 429);
        });
    });
}

4. Kod Analizi ve Çalışma Mantığı

Kayıtlı kullanıcılar için ID bazlı dakikada 120 istek hakkı tanınırken, anonim kullanıcılara IP bazlı 30 istek izni verilir. Limit aşımında 429 yanıtı döner.

Yukarıdaki implementasyonda dikkat edilmesi gereken en kritik husus, işlemlerin bağımsız (decoupled) ve test edilebilir şekilde katmanlara ayrılmış olmasıdır. Bu yaklaşım, birim testlerin (Unit Tests) ve entegrasyon testlerinin hızlıca yazılabilmesine olanak tanır.

5. Performans ve Güvenlik İpuçları

Canlı üretim (production) ortamında sistemin kararlı çalışması için aşağıdaki pratikleri mutlaka dikkate almalısınız:

  • Giriş ve şifre sıfırlama rotalarına dakikada en fazla 5 istek limiti koyun.
  • Redis önbellek kullanarak limit sayaçlarını mikro saniyelerde güncelleyin.
  • İstemciye 'Retry-After' ve 'X-RateLimit-Remaining' başlıklarını iletin.

6. En Sık Yapılan Hatalar ve Hata Ayıklama (Troubleshooting)

Reverse proxy arkasında IP adresinin proxy IP'si olarak algılanıp tüm ofisin kilitlenmesini önlemek için TrustedProxy ayarını yapın.

Eğer beklenmedik bir hata ile karşılaşırsanız; öncelikle log dosyalarını incelemeli, ortam değişkenlerinin (.env) doğru tanımlandığını doğrulamalı ve önbellek (cache) mekanizmalarını temizleyerek sistemi yeniden başlatmalısınız.

7. Sonuç ve Mimari Değerlendirme

Rate Limiting, kamuya açık her API'nin zorunlu savunma kalkanıdır.

Cengiz Bozdemir olarak 18 yılı aşkın kurumsal yazılım mimarlığı deneyimimle tavsiyem; sistem tasarımında her zaman sürdürülebilirlik, güvenlik ve yüksek eşzamanlılık (high concurrency) hedeflerini ön planda tutmanızdır. Kurumsal projelerinizde özel mimari danışmanlık veya uçtan uca yazılım geliştirme desteği için bizimle iletişime geçebilirsiniz.

#laravel#rate limiting#throttle#api#security#ddos
Cengiz Bozdemir

Cengiz Bozdemir

Kurumsal Yazılım Mimarı & Full-Stack Geliştirici

İşletmeniz veya girişiminiz için yüksek performanslı sistemler, özel yazılımlar ve yapay zeka otomasyonları inşa ediyorum.

KURUMSAL YAZILIM MİMARİSİ18+ YILLIK TECRÜBEPHP 8.3 & LARAVELFLUTTER & MOBİL ÇÖZÜMLERNEXT.JS & REACT UYGULAMALARIYAPAY ZEKA & OTOMASYONE-TİCARET & PAZARYERİ ENTEGRASYONUCENGİZ BOZDEMİRCBDIGITALKURUMSAL YAZILIM MİMARİSİ18+ YILLIK TECRÜBEPHP 8.3 & LARAVELFLUTTER & MOBİL ÇÖZÜMLERNEXT.JS & REACT UYGULAMALARIYAPAY ZEKA & OTOMASYONE-TİCARET & PAZARYERİ ENTEGRASYONUCENGİZ BOZDEMİRCBDIGITALKURUMSAL YAZILIM MİMARİSİ18+ YILLIK TECRÜBEPHP 8.3 & LARAVELFLUTTER & MOBİL ÇÖZÜMLERNEXT.JS & REACT UYGULAMALARIYAPAY ZEKA & OTOMASYONE-TİCARET & PAZARYERİ ENTEGRASYONUCENGİZ BOZDEMİRCBDIGITALKURUMSAL YAZILIM MİMARİSİ18+ YILLIK TECRÜBEPHP 8.3 & LARAVELFLUTTER & MOBİL ÇÖZÜMLERNEXT.JS & REACT UYGULAMALARIYAPAY ZEKA & OTOMASYONE-TİCARET & PAZARYERİ ENTEGRASYONUCENGİZ BOZDEMİRCBDIGITAL
© 2026 CB DIGITAL Tüm hakları saklıdır.