Laravel’da istekleri çalışma zamanında inceleyen bir paket üzerinde çalışıyorum. Bu, sadece denetleyiciye ulaşmadan önce değil, aynı zamanda isteklerin iç içe geçmiş context’ini anlamaya yardımcı olabilir.
Bu işin başlangıcı, bir soru üzerinden yola çıkmak oldu:
Çalışma zamanı bağlamı, statik istek incelemesinden daha iyi güvenlik sinyalleri verebilir mi?
Bu soru etrafında bir prototip geliştirmeye karar verdim.
Temel Fikir
Temel Fikir
Sadece şunlara güvenmek yerine:
- validation kuralları
- middleware kontrolleri
- sınır güvenliği (WAF, CDN kuralları)
Paket, Laravel içinde istek alındıktan sonra bir RuntimeContext oluşturuyor ve buna karşı bir Guards dizisi çalıştırıyor.
Her guard, isteğin veya davranışın farklı bir yönünü inceliyor.
Mimari (Yüksek Seviye)
Mimari (Yüksek Seviye)
RuntimeContext
- Normalleştirilmiş istek verisi
- Başlıklar, gövde, rota bilgileri
- İcra meta verileri
- Opsiyonel tarihsel sinyaller
Guards
- Küçük, odaklı denetleyiciler
- Öncelik bazlı çalışma
- Sonuçları kısa devre yapma veya birleştirme
- Yapılandırılmış GuardResult nesneleri döndürme
Profiller
- Rota veya kullanım durumuna göre guard’ları gruplama
- API’ler ile yönetici rotaları için farklı davranışlar
- Farklı uygulama modları
Cevap Modları
- sadece günlüğe kaydet
- sessiz
- engelle
- dry-run (tam inceleme, uygulama yok)
Şu Ana Kadar Uygulanan Guards
Şu Ana Kadar Uygulanan Guards
Örnekler (tamlık iddiasında değil):
- SQL injection (model bazlı + sezgisel)
- XSS göstergeleri
- SSRF girişimlerini (iç ipler, metadata uç noktaları)
- Kitle atama kötüye kullanımı
- PHP serileştirme vektörleri
- NoSQL operatör enjekte etme
- GraphQL derinlik / karmaşıklık kötüye kullanımı
- Bot ve anomali davranışı (deneysel)
Her guard:
- yapılandırılabilir
- çalışma zamanında etkinleştirilebilir/devre dışı bırakılabilir
- belirlenmiş maliyet / öncelik taşır
Performans Considerations
Performans Considerations
Bu büyük bir endişeydi, bu yüzden bazı denemeler ekledim:
- Tekrar eden yükler için deduplication cache
- Örnekleme (isteklerin %’sini denetle, her zaman şüpheli olanları denetle)
- Aşamalı denetim (hızlı tarama → derin tarama)
- Guard düzeyinde ve boru hattı zaman bütçeleri
Henüz gerçek üretim trafiğinde yeterince kanıtlanmadı.
Bu, NE DEĞİLDİR
Bu, NE DEĞİLDİR
Açık olmak gerekirse:
- Validation’ın bir yerine geçmez
- Bir WAF değildir
- Tüm saldırıları “engelleme” iddiasında değildir
- Henüz üretim hazır değildir
Bu daha çok bir tasarım deneyi etrafında:
- guard bileşimi
- çalışma zamanı bağlam modeli
- sinyal kalitesi ve yük arasındaki denge
Neden Bunu Paylaşıyorum
Neden Bunu Paylaşıyorum
Ağırlıklı olarak geri bildirim arıyorum:
- mimari seçimler
- guard arayüz tasarımı
- temel hatalar
- bu durumu daha iyi çözmüş mevcut projeler
Laravel iç yapıları, PHP güvenlik araçları, istek yaşam döngüleri veya çalışma zamanı analiz sistemleri ile çalıştıysanız, düşüncelerinizi duymak isterim — olumlu ya da olumsuz.
Bağlantılar
Bağlantılar
GitHub (kaynak & sorunlar):
https://github.com/M9nx/laravel-runtime-guard
Packagist:
https://packagist.org/packages/m9nx/laravel-runtime-guard
Eğer bu bir çıkmaza ulaşırsa, bu da sorun değil — esasen neden olduğunu anlamak istiyorum.
Her türlü geri bildirim memnuniyetle karşılanır 🙏
Kaynak: Orijinal Makale


