Bir web uygulaması internete açıldığı dakikadan itibaren otomatik tarayıcıların ve saldırganların hedefindedir. Güvenlik tek bir “ayar” değil, birbirini tamamlayan katmanlardır: biri eksik kaldığında diğerleri zararı sınırlar. Aşağıdaki sekiz katman, işletme sitesinden SaaS ürününe kadar her uygulamada bulunması gereken temelleri özetliyor.
1) Aktarım güvenliği: HTTPS ve güvenlik başlıkları
Tüm trafik TLS ile şifrelenmeli, HTTP istekleri HTTPS’e yönlendirilmeli (HSTS ile tarayıcıya kalıcı olarak bildirilmeli). Ayrıca X-Content-Type-Options, Referrer-Policy, Permissions-Policy ve Content-Security-Policy gibi başlıklar çerçeveleme, betik enjeksiyonu ve veri sızıntısı riskini azaltır.
2) Kimlik doğrulama ve oturum yönetimi
- Şifreler asla düz metin tutulmamalı;
bcrypt/argon2gibi yavaş özetleme algoritmaları kullanılmalı. - Oturum çerezleri
HttpOnly,SecureveSameSiteile işaretlenmeli; giriş sonrası oturum kimliği yenilenmeli. - Yönetici hesapları için iki adımlı doğrulama (TOTP) zorunlu tutulmalı; kurtarma kodları güvenli saklanmalı.
- Oturumlar belirli süre sonra kapanmalı, “cihazı hatırla” özelliği imzalı ve süreli olmalı.
3) Kaba kuvvet ve otomatik saldırılara karşı koruma
Giriş, şifre sıfırlama, doğrulama kodu ve form uç noktalarında hız sınırlaması olmalı: art arda hatalı denemede gecikme, hesap/IP bazlı kilit, bot tuzakları (honeypot) ve gerektiğinde CAPTCHA. Kullanıcı var mı yok mu bilgisini hata mesajından sızdırmayın.
4) Girdi doğrulama ve çıktı kodlama
Kullanıcıdan gelen her veri güvenilmezdir. SQL için parametreli sorgular (SQL injection’a karşı), ekranda gösterirken HTML kaçışı (XSS’e karşı), sunucu tarafında tür/uzunluk doğrulaması şarttır. Yalnızca istemci tarafı doğrulamaya güvenmeyin.
5) CSRF ve istek doğrulama
Oturum açık bir kullanıcıyı farkında olmadan işlem yapmaya zorlayan saldırılara (CSRF) karşı durum değiştiren her form ve istekte tahmin edilemez jeton doğrulanmalı; SameSite çerezleri ek koruma sağlar. API’lerde de kimlik ve kaynak denetimi yapılmalı.
6) Güvenli dosya yükleme
Dosya yüklemesi, saldırganların sunucuya zararlı kod yerleştirme yoludur. Dosya türü yalnızca uzantıya göre değil içeriğe göre doğrulanmalı, boyut sınırlanmalı, dosya adı rastgele üretilmeli, yükleme klasöründe betik çalıştırma kapatılmalı ve mümkünse dosyalar web kökü dışında saklanıp yetkili bağlantıyla sunulmalıdır. Dosya yollarını kullanıcıya hiç göstermemek ek bir güvenlik katmanıdır.
7) Yetkilendirme ve veri koruma
- “En az yetki” ilkesi: her kullanıcı yalnızca işini yapmak için gereken ekranları görsün.
- Başkasının kaydına kimlik değiştirerek erişimi önleyin (her kayıt isteğinde sahiplik kontrolü).
- Hassas alanlar (T.C. kimlik no, adres, belge) veritabanında şifreli saklanmalı; yedekler de şifreli olmalı.
- Çok kiracılı sistemlerde kiracı verisi birbirinden yalıtılmalı (çok kiracılı mimari yazısı).
8) İzleme, kayıt ve yedekleme
Giriş denemeleri, yetki değişiklikleri ve kritik işlemler zaman, kullanıcı ve IP bilgisiyle kayıt altına alınmalı. Yedekler düzenli alınmalı, farklı bir yerde saklanmalı ve geri yükleme belirli aralıklarla denenmelidir; test edilmemiş yedek, yedek değildir. Güncellemeler (PHP/CMS/kütüphane) gecikmeden uygulanmalıdır.
Hızlı kontrol listesi
- Sitenin tamamı HTTPS ve HSTS ile mi sunuluyor?
- Yönetici girişinde iki adımlı doğrulama zorunlu mu?
- Giriş ve form uç noktalarında hız sınırı var mı?
- SQL/HTML girdileri parametreli ve kaçışlı mı?
- Her form CSRF jetonu taşıyor mu?
- Dosya yükleme içerik doğrulaması ve güvenli depolamayla mı yapılıyor?
- Hassas alanlar şifreli mi, yetkiler en az düzeyde mi?
- Kritik işlemler kayıt altında, yedekler test edilmiş mi?
KVKK ile ilişkisi
Kişisel veri işleyen her uygulama, uygun teknik ve idari tedbirleri almakla yükümlüdür. Yukarıdaki katmanlar bu tedbirlerin teknik kısmının temelidir. Bu yazı hukuki görüş değildir; uygulamaya özgü ayrıntılar için uzmanla çalışın.
Webbiu olarak geliştirdiğimiz tüm projelerde bu katmanları standart olarak uyguluyoruz. Güvenli bir web sitesi ya da uygulama için kurumsal web ve özel yazılım hizmetlerimizi inceleyin, teklif alın. SEO tarafı için teknik SEO listesine da bakabilirsiniz.
Sık sorulan sorular
HTTPS yeterli bir güvenlik önlemi midir?
Hayır. HTTPS yalnızca aktarım sırasında veriyi korur; uygulama içindeki açıklara (SQL injection, XSS, zayıf yetkilendirme) karşı koruma sağlamaz.
İki adımlı doğrulama neden önemli?
Şifre çalınsa bile ikinci faktör olmadan giriş yapılamaz. Yönetici hesapları için en etkili tekil önlemlerden biridir.
Yedekleme tek başına yeterli mi?
Yedek, olay sonrası kurtarma sağlar ama saldırıyı önlemez. Önleyici katmanlarla birlikte kullanılmalı ve geri yükleme düzenli denenmelidir.
