İçeriğe geç
Yazılım

Laravel projelerinde güvenlik: yayın öncesi kontrol listesi

Yetkilendirmeden dosya yüklemeye, oturum yönetiminden hata mesajlarına kadar bir Laravel uygulamasını yayına almadan önce gözden geçirmeniz gereken maddeler.

AY Arda Yılmaz 08 Temmuz 2026 2 dk okuma 9 görüntülenme
Laravel projelerinde güvenlik: yayın öncesi kontrol listesi

Laravel, güvenli varsayılanlarla gelir; ancak varsayılanları bozmak da kolaydır. Aşağıdaki liste, yayına almadan önce hızlıca geçilebilecek pratik kontrolleri içerir.

Ortam ve yapılandırma

  • APP_DEBUG=false ve APP_ENV=production olmalı. Hata ayıklama açık kalırsa yığın izleri ve ortam değişkenleri sızabilir.
  • APP_KEY üretilmiş ve yedeklenmiş olmalı; anahtar değişirse şifrelenmiş veriler (ör. lisans anahtarları) çözülemez.
  • .env dosyası web kökünün dışında veya erişime kapalı olmalı.
  • Yapılandırma, rota ve görünüm önbellekleri üretimde oluşturulmalı.

Yetkilendirme

En sık görülen açık, kimlik doğrulaması yapılmış ama yetkilendirmesi unutulmuş uç noktalardır. Kullanıcı giriş yapmıştır; ancak başka bir kullanıcının sipariş numarasını yazdığında o siparişi görebiliyordur.

  • Model bağlama (route model binding) kullanılan her yerde sahiplik kontrolü yapın: $order->user_id === auth()->id() ya da bir Policy.
  • Yönetim rotalarını rol/izin ara katmanıyla koruyun; görünümde butonu gizlemek yeterli değildir.
  • Toplu atama (mass assignment) için $fillable listesini dar tutun; role_id, is_active, balance gibi alanları asla kullanıcı girdisinden doldurmayın.

Girdi ve çıktı

  • Tüm form istekleri doğrulanmalı (FormRequest veya validate()).
  • Blade'de {{ }} kullanın; {!! !!} yalnızca temizlenmiş HTML için.
  • Kullanıcıdan gelen HTML içeriği (ör. yorum) sunucu tarafında beyaz listeyle temizlenmeli.
  • Ham SQL sorgusu yazıyorsanız parametre bağlama kullanın; whereRaw içine kullanıcı girdisi koymayın.

Dosya yükleme

  • MIME türünü ve gerçek dosya içeriğini doğrulayın; uzantıya güvenmeyin.
  • Yüklenen dosyaları rastgele adla saklayın, orijinal adı ayrı alanda tutun.
  • Hassas dosyaları storage/app altında tutup imzalı bağlantıyla sunun; herkese açık dizine koymayın.
  • Yükleme boyutunu hem PHP hem uygulama tarafında sınırlayın.

Oturum ve kimlik doğrulama

  • Giriş denemelerine hız sınırı uygulayın (throttle).
  • Başarılı girişte oturumu yenileyin (session()->regenerate()).
  • Şifre sıfırlama bağlantılarının süresi kısa olmalı ve tek kullanımlık olmalı.
  • Yönetici hesapları için iki adımlı doğrulamayı zorunlu tutmayı değerlendirin.
  • Çıkışta oturumu geçersiz kılın ve CSRF anahtarını yenileyin.

Hata mesajları ve günlükler

Kullanıcıya gösterilen mesajlar teknik detay içermemeli; "veritabanı bağlantı hatası: kullanıcı adı ..." gibi bir metin saldırgana bilgi verir. Öte yandan günlüklere kişisel veri, şifre veya kart bilgisi yazılmamalıdır. Günlük dosyalarının erişim izinlerini ve saklama süresini de belirleyin.

Bağımlılıklar ve güncellemeler

composer audit çıktısını düzenli kontrol edin. Kullanılmayan paketleri kaldırın; her paket bir saldırı yüzeyidir. Ana çatı sürümünü destek takvimine göre planlı biçimde yükseltin.

Son kontrol

Yayın öncesi bir "kötü niyetli kullanıcı" turu atın: başkasının kaydını görmeye çalışın, formlara beklenmeyen değerler gönderin, yetkisiz rotalara doğrudan istek atın. Bu on beş dakikalık tur, çoğu zaman hazırlık aşamasında fark edilmeyen bir açığı ortaya çıkarır.

Paylaş:
AY

Yazar

Arda Yılmaz

Bogalab Yazılım ekibinde hazır web yazılımlarının kurgusu, geliştirilmesi ve müşteri projelerine uyarlanması üzerine çalışıyor.

Devamı

İlgili yazılar

Bu konuyu tamamlayan diğer içeriklerimiz.

E-ticaret sitesi açarken yapılan 7 teknik hata
E-Ticaret · 12 Ağustos 2026

E-ticaret sitesi açarken yapılan 7 teknik hata

Yeni açılan mağazalarda tekrar eden yedi teknik hata ve bunların satışa yansıması. Stok kilidinden ödeme adımına kadar somut kontrol noktaları.

3 dk okuma Oku

Okuduğunuzu uygulamaya geçirelim mi?

Yönetim paneliyle gelen hazır web yazılımlarımızı inceleyin ya da projeniz için size özel bir teklif alın.

Karşılaştır ()

Çerez tercihleriniz

Sitemizin çalışması için zorunlu çerezleri kullanıyoruz. Analitik ve pazarlama çerezleri yalnızca onayınızla çalışır. Detaylar için Çerez Politikası.