Web Güvenliğine Başlangıç: Modern Bir Siteyi Hangi Katmanlar Korur?
Web güvenliği neden katmanlı düşünülmeli?
Bir web sitesini güvenli hale getirmek tek bir eklenti, tek bir ayar veya tek bir kural ile bitmez. Gerçek güvenlik; kullanıcı girişinden veritabanına, admin panelinden dosya yükleme alanına kadar her noktada küçük ama doğru kontrollerin birleşmesiyle oluşur.
1. Kimlik doğrulama ve oturum güvenliği
Kullanıcı giriş sistemi güvenliğin ilk kapısıdır. Güçlü parola politikası, güvenli session cookie ayarları, oturum zaman aşımı, rol bazlı erişim ve şifre değiştirme akışları düzgün kurulmalıdır. Admin paneli gibi hassas alanlarda sadece giriş kontrolü yetmez; kullanıcının rolü de her kritik işlemde tekrar kontrol edilmelidir.
2. Yetkilendirme kontrolleri
Bir kullanıcının giriş yapmış olması her sayfaya erişebileceği anlamına gelmez. Admin, superadmin ve normal kullanıcı rolleri ayrı tutulmalıdır. Özellikle kullanıcı yönetimi, blog ekleme, proje düzenleme, WAF ayarı değiştirme ve log görüntüleme gibi sayfalar sadece yetkili rollere açılmalıdır.
3. Input doğrulama ve output encode
Formlardan gelen tüm veriler beklenen tipe, uzunluğa ve formata göre kontrol edilmelidir. SQL sorgularında prepared statement kullanmak SQL Injection riskini ciddi şekilde azaltır. Sayfaya basılan kullanıcı verilerinde ise htmlspecialchars gibi encode yöntemleri XSS riskini düşürür.
4. CSRF koruması
Silme, güncelleme, ayar değiştirme, mesaj gönderme veya dosya yükleme gibi işlemlerde CSRF token kullanılmalıdır. Token kontrolü olmayan formlar, kullanıcının haberi olmadan işlem yaptırmaya açık hale gelir.
5. Dosya yükleme güvenliği
Dosya yükleme alanları en riskli bölümlerden biridir. Sadece uzantıya bakmak yeterli değildir; MIME tipi kontrol edilmeli, dosyalar rastgele isimle kaydedilmeli, upload klasöründe PHP çalışması engellenmeli ve dosya boyutu sınırlandırılmalıdır.
6. WAF ve loglama
WAF, şüpheli istekleri erkenden yakalamak için faydalı bir katmandır; fakat uygulama içi güvenli kodlamanın yerine geçmez. WAF logları; IP, istek yolu, risk skoru, eşleşen kural ve kullanıcı ajanı gibi verileri tutarak olay incelemesini kolaylaştırır.
7. Güvenli geliştirme alışkanlığı
Profesyonel güvenlik, sürekli kontrol edilen bir süreçtir. Yeni form eklendiğinde CSRF var mı, yeni admin sayfasında rol kontrolü var mı, yeni dosya alanında upload kısıtları var mı diye düzenli bakmak gerekir. Güvenlik tek seferlik değil, proje boyunca devam eden bir disiplindir.