Bir güvenlik aracı kullanırken genellikle birçok ön koşul bulunduğunu görürsünüz: bulut hesabı oluşturmanız, sürekli entegrasyon sisteminizi hazırlamanız, bir tarayıcı ve bağımlılıklarını kurmanız, belki de kodunuzu bir sunucuya göndermeniz gerekir. Bazen ise bir Laravel uygulamasının mevcut durumunu, lansmandan önce veya bir müşteri tesliminden önce, anında görmek istersiniz.
İşte bu boşluğu Observer dolduruyor. Tek bir çevrimdışı ikili dosya (ücretsiz ve MIT lisanslı) ile bir kod tabanını güvenlik ve üretim sağlığı sorunları için tarar ve tamamı bağımsız bir HTML raporu oluşturur — hiçbir hesap, hiçbir telemetri, sisteminize yükleme yapılmadan. Bir projeye yönlendirin, raporu açın. Bu yazı, bir Laravel uygulamasını bu araçla adım adım denetlemeyi anlatıyor.
Kurulum
Kurulum
İşletim sisteminiz için ikili dosyayı yayınlar sayfasından edinin veya bir paket yöneticisi kullanarak yükleyin:
# macOS / Linux
brew install https://raw.githubusercontent.com/sanks205/getobserver/main/packaging/homebrew/observer.rb
# Windows
scoop install https://raw.githubusercontent.com/sanks205/getobserver/main/packaging/scoop/observer.json
# Go
go install github.com/sanks205/getobserver/cmd/cli@latest
Kurulum sırasında ayarlamanız gereken bir çalışma zamanı yok — bu, tek bir statik bağlı dosyadır.
Tek Komut
Tek Komut
Laravel projenizin kök dizininden şu komutu çalıştırın:
observer analyze . --out report.html
Denetim tamam. Observer, yığın (Laravel, PHP sürümü, veritabanınız) tespit eder, kodu tarar, yapılandırmanızı ve bağımlılıkları inceler, projeyi değerlendirir ve report.html dosyasını oluşturur. Bunu bir tarayıcıda açın — ya da PDF formatında çıktı alıp bir müşteriyle paylaşın.
Raporu Okumak
Raporu Okumak
Rapor, Güvenlik Derecelendirmesi (A–E) ile başlar — bu, SonarQube gibi araçların kullandığı, CVSS/CWE/OWASP temelinde oluşturulmuş en kötü-seviye örüntü modeline dayanır — ve 0-100 arasında Güvenlik ve Kod Sağlığı puanları içerir. Aşağıda, en yüksek etkiye sahip sorunları ortaya çıkaran “Önce Bunları Düzeltin” listesi sunulur ve bulgular kural bazında gruplandırılır, böylece büyük bir uygulama sonsuz bir duvar yerine birkaç düzine taranabilir gruba indirgenir. Her bulgu bir önem derecesi, dosya/satır ve hemen harekete geçebileceğiniz önce → sonra düzeltme bilgisi taşır.
Laravel Uygulamasında Hangi Sorunları Belirtiyor
Laravel Uygulamasında Hangi Sorunları Belirtiyor
Ön tanımlı haliyle, ücretsiz temel sürüm, üretimde Laravel uygulamalarının en sık sorun yaşadığı durumları tespit eder:
- Sır ve yapılandırmalar — Observer,
.envve yapılandırma dosyalarınızı, üretime gönderilenAPP_DEBUG=trueve kodda sert kodlanmış API anahtarlarını kontrol eder. - Enjeksiyon riski taşıyan sorgular — bağlamalar yerine dize birleştirme ile oluşturulmuş ham SQL (
DB::select("... " . $id)). - Bağımlılık CVE’leri —
--cveekleyerekcomposer.json‘nizi OSV.dev ile kontrol eder. - Altyapı & yapılandırma — Dockerfile’lar,
docker-compose, Kubernetes manifestleri ve nginx/Apache yapılandırmalarını yanlış yapılandırmalar için kontrol eder (root olarak çalıştırma,:latest, açık DB portları, eski TLS).
Daha derin, çerçeveye özgü kurallar için — kaçış yapılmamış Blade ({!! !!}), toplu-atama, APP_KEY işlemesi, Eloquent ham ifadeleri ve CodeIgniter, WordPress, Symfony, Django, Rails ve Spring için paketler — isteğe bağlı tek seferlik bir Observer Pro eklentisi vardır. Ücretsiz temel, sağlam bir denetim için kendi başına yeterlidir; Pro, Laravel’e özgü derinlik ekler.
Komut Satırı Yok mu? Çift Tıklayın
Komut Satırı Yok mu? Çift Tıklayın
Son sürüm (v0.4.0), terminalde yaşamayan ekip üyeleri için sıfır CLI yolunu ekledi: ikili dosyaya çift tıklayın ve Observer, tarayıcınızda yerel bir kontrol paneli açar. Bir klasör yapıştırın, Taramaya tıklayın ve raporu okuyun — geçmiş taramalar, yığın ve “son taramadan beri yeni” tüm veriler aynı sayfada görünür. Aynı motor, hiçbir yazım yok.
CI’da
CI’da
Aynı ikili, bir pipeline’a dahil edilebilir. Yeni yüksek öncelikli sorunlarla inşaatı başarısız kılın ve GitHub kod taraması için SARIF çıkışı yapın:
observer analyze . --sarif observer.sarif --fail-on High
Mevcut bir uygulamada kullanmaya mı başlıyorsunuz? Öncelikle bir temel kaydedin, ardından yalnızca yeni sorunları raporlayın ki mevcut borçta boğulmayın:
observer analyze . --write-baseline .observer-baseline.json
observer analyze . --baseline .observer-baseline.json --fail-on Medium
Çevrimdışı ve Denetlenebilir
Çevrimdışı ve Denetlenebilir
Varsayılan olarak hiçbir şey makinenizden çıkmaz — hiçbir hesap, hiçbir telefon bağlantısı. Regüle veya müşteri gizliliği gerektiren işler için bu garantiyi zorunlu hale getirebilirsiniz:
observer analyze . --assert-offline
Herhangi bir ağ bağlantısı gerektiren bayrak geçilirse çalışmayı reddeder ve Offline mode: no network I/O. yazısını basar, böylece bir denetim sırasında kanıt sunabilirsiniz — bu, finans, sağlık veya bir müşterinin kodunu NDA kapsamında incelemek için yararlıdır.
Sonuç
Sonuç
Observer, sürekli bir platformu (SonarQube) veya her zaman açık bir monitörü (Sentry) değiştirmeyecek — bu, farklı bir yapıdaki bir araç: hızlı, çevrimdışı, tek komutla kullanılan bir anlık görüntü. Kodu, bağımlılıkları, yapılandırmayı ve altyapıyı tek bir raporda birleştirir, okunabilir veya paylaşılabilir. Önceki bir kontrol, miras devri ya da bir Laravel uygulamasının gerçek durumunu görmek için, güvenlik denetimi için mümkün olan en düşük sürtünmeli deneyimi sunar.
Temel sürüm ücretsizdir ve MIT lisanslıdır — şu anki projenizde deneyin ve raporun ne dediğini görün: github.com/sanks205/getobserver.
Kaynak: Orijinal Makale


