Güvenlik sonradan eklenecek süs değildir
Laravel birçok konuda güvenli varsayılanlarla gelir. CSRF koruması, şifre hashleme, request validasyonu gibi güzel araçlar hazırdır. Ama bu, geliştirici hiçbir şey düşünmeyecek demek değildir. Özellikle admin panel, dosya upload ve zengin HTML içerik tarafında dikkatli olmak gerekir.
Formlarda ilk savunma validasyondur
Kullanıcıdan gelen veriye güvenmeyiz. E-posta gerçekten e-posta mı, telefon alanı beklenen uzunlukta mı, dosya gerçekten görsel mi, URL güvenli mi? Bunlar FormRequest içinde netleşirse controller sade kalır ve hatalı veri içeri girmez.
Dosya upload tarafı
Dosya yükleme her zaman riskli alandır. MIME kontrolü, boyut sınırı, public path düzeni, rastgele dosya adı ve mümkünse görseli yeniden encode etmek güvenliği artırır. Kullanıcının gönderdiği dosya adını doğrudan sisteme yazmak iyi fikir değildir.
XSS nerede çıkar?
Blade içinde `{{ }}` kullanırsanız Laravel metni escape eder. Ama blog veya proje içeriği gibi zengin HTML alanlarını `{!! !!}` ile basıyorsanız sanitizer gerekir. Aksi halde birisi script, onerror veya javascript: gibi zararlı içerikleri içeri sokabilir.
- Raw HTML basılan her yerde sanitizer kullanın.
- Admin yetkisini middleware ile koruyun.
- Upload edilen dosyaları doğrulayın ve yeniden işleyin.
- Güvenliği test paketine konu edin.