Web Güvenliği Temelleri: Sitenizi Nasıl Korursunuz?

Ahmet Ertaş9 Mayıs 20265 dk okuma

Web Güvenliği Temelleri: Sitenizi Nasıl Korursunuz?

Web Güvenliği Temelleri: Sitenizi Nasıl Korursunuz?

"Bizim site küçük, kim neden saldırsın?"

Bu cümle en sık duyduğumuz ve en tehlikeli varsayımlardan biri. Çünkü saldırıların büyük çoğunluğu hedefli değil — otomatiktir. Botlar interneti tarayarak bilinen güvenlik açıklarını arar. Siteniz küçük de olsa, büyük de olsa, açık varsa bulunur.

Web güvenliği sadece SSL sertifikası kurmak değil. Çok katmanlı bir koruma gerektirir.


En Yaygın Tehditler

OWASP (Open Web Application Security Project), web güvenliğinin referans noktasıdır. En yaygın tehditleri inceleyelim.

Injection Saldırıları

Saldırgan, uygulamanıza kötü amaçlı kod enjekte eder.

SQL Injection: Veritabanı sorgularına zararlı komutlar eklenir. Sonuç: veritabanınızdaki tüm veriler çalınabilir, silinebilir, değiştirilebilir.

XSS (Cross-Site Scripting): Sayfanıza zararlı JavaScript enjekte edilir. Sonuç: kullanıcıların çerezleri, oturum bilgileri çalınabilir.

Korunma: Kullanıcıdan gelen her veriyi doğrulayın ve temizleyin. Parameterized query kullanın. Çıktıyı encode edin.

Kırık Authentication

Zayıf şifreler, güvenli olmayan oturum yönetimi, çok faktörlü doğrulama eksikliği.

Sonuç: Saldırgan başka bir kullanıcı gibi davranabilir. Admin hesabına erişim sağlayabilir.

Korunma: Güçlü şifre politikası, güvenli session yönetimi, mümkünse iki faktörlü doğrulama.

Hassas Veri İfşası

Şifreler düz metin olarak saklanıyor. Kredi kartı bilgileri loglanıyor. API anahtarları kaynak kodda görünüyor.

Sonuç: Veri ihlali. Yasal sorumluluk. Müşteri güveni kaybı.

Korunma: Hassas verileri şifreleyin. Şifreleri hash'leyin (Argon2 veya bcrypt). Loglardan hassas veriyi çıkarın. Environment variable kullanın.

CSRF (Cross-Site Request Forgery)

Kullanıcı oturum açıkken, saldırgan onun adına istek gönderir. Kullanıcı farkında bile olmaz.

Korunma: CSRF token'ları. SameSite cookie ayarları. Origin doğrulaması.

Güvenlik Yanlış Yapılandırmaları

Varsayılan şifreler değiştirilmemiş. Hata mesajları detaylı bilgi veriyor. Gereksiz portlar açık. Debug modu production'da aktif.

En kolay önlenebilir ama en sık karşılaşılan sorunlar bunlardır. Çözüm: güvenlik kontrol listesi ve düzenli denetim.


Temel Koruma Katmanları

HTTPS Zorunluluğu

HTTP üzerinden iletilen tüm veriler okunabilir durumdadır. Aynı WiFi ağındaki biri, iletişiminizi görebilir.

HTTPS bu iletişimi şifreler. SSL/TLS sertifikası ile sağlanır.

Günümüzde HTTPS bir seçenek değil, zorunluluktur:

  • Google, HTTP siteleri "güvensiz" olarak işaretler
  • Tarayıcılar uyarı gösterir
  • SEO sıralaması olumsuz etkilenir
  • Kullanıcı güveni düşer

Let's Encrypt ile ücretsiz SSL sertifikası alınabilir. Bahane yok.

Güvenlik Başlıkları

HTTP güvenlik başlıkları, tarayıcıya sitenizi nasıl koruması gerektiğini söyler.

CSP (Content Security Policy): Hangi kaynaklardan script, stil, görsel yükleneceğini belirler. XSS saldırılarına karşı güçlü bir koruma.

CORS (Cross-Origin Resource Sharing): Hangi domain'lerin API'nize erişebileceğini kontrol eder. Yetkisiz erişimi engeller.

X-Frame-Options: Sitenizin iframe içinde gösterilmesini engeller. Clickjacking saldırılarını önler.

Strict-Transport-Security (HSTS): Tarayıcıya "bu siteye her zaman HTTPS üzerinden bağlan" der.

Input Validasyonu

Altın kural: Kullanıcıdan gelen her veriye şüpheyle yaklaşın.

  • Form verileri doğrulanmalı (hem frontend hem backend)
  • Dosya yüklemeleri kontrol edilmeli (tip, boyut, içerik)
  • URL parametreleri temizlenmeli
  • Backend validasyonu asla atlanmamalı — frontend validasyonu kolayca aşılabilir

Rate Limiting

Tek bir kaynaktan gelen istek sayısını sınırlamak.

  • Login denemelerini sınırlayın (brute force koruması)
  • API isteklerini sınırlayın (abuse prevention)
  • Form gönderimlerini sınırlayın (spam koruması)

Güçlü Authentication

Kullanıcı girişi varsa:

  • Şifre hashleme: Şifreler asla düz metin olarak saklanmaz. Argon2 veya bcrypt kullanılır.
  • Oturum yönetimi: Session token'ları güvenli oluşturulur ve saklanır. HttpOnly ve Secure flag'leri kullanılır.
  • İki faktörlü doğrulama: Kritik hesaplar için (admin paneli gibi) ek doğrulama katmanı.

Altyapı Güvenliği

Uygulama güvenli olsa bile, altyapı açıksa koruma yetersiz kalır.

DDoS Koruması

Dağıtık hizmet reddi (DDoS) saldırıları, sitenizi aşırı trafikle bunaltarak erişilemez kılar.

Korunma: CDN ve WAF hizmeti kullanan sağlayıcılar bu saldırıları absorbe edebilir. Bot trafiğini filtreler, meşru kullanıcıların erişimini korur.

WAF (Web Application Firewall)

Uygulama seviyesinde trafik analizi yapar. Bilinen saldırı kalıplarını tespit eder ve engeller.

SQL injection denemeleri, XSS payload'ları, kötü niyetli bot trafiği — WAF bunları HTTP seviyesinde yakalar.

Düzenli Yedekleme

Her şeye rağmen bir sorun yaşanırsa, yedekler hayat kurtarır.

  • Günlük veya haftalık otomatik yedekleme
  • Yedeklerin farklı bir lokasyonda saklanması
  • Düzenli geri yükleme testi (yedek çalışıyor mu?)

"Yedek almayı unuttum" cümlesi, veri kaybından sonra en çok duyulan cümledir.

Güncelleme Disiplini

Güvenlik açıklarının çoğu, güncellenmemiş yazılımlardan kaynaklanır.

  • Framework güncellemeleri
  • Bağımlılık güncellemeleri
  • İşletim sistemi yamaları
  • SSL sertifika yenilemeleri

Güncelleme yapmamak, kapıyı açık bırakıp "kimse girmez" demek gibidir.

Monitoring

Sorun yaşandığında erken tespit kritiktir.

  • Uptime monitoring: Site çökerse anında bildirim
  • Error tracking: Beklenmedik hatalar yakalanır
  • Güvenlik logları: Şüpheli aktiviteler tespit edilir

Ne kadar erken fark ederseniz, o kadar az hasar olur.


Geliştirici İçin Kontrol Listesi

Her projenin sonunda gözden geçirilmesi gereken güvenlik kontrol listesi:

Kod Güvenliği

Konfigürasyon

Veri ve Erişim

Operasyon

Bu listedeki her madde, tek başına bir saldırı vektörünü kapatır.


Sonuç

Web güvenliği tek seferlik bir iş değil, sürekli bir süreçtir.

Mükemmel güvenlik diye bir şey yok. Ama temel koruma katmanlarını uygulamak, saldırıların büyük çoğunluğunu engeller. İleri seviye, hedefli saldırılar farklı bir hikaye — ama otomatize taramalara karşı korunmak, bu yazıdaki temelleri uygulamakla mümkün.

Güvenlik, site canlıya çıktıktan sonra düşünülecek bir şey değil. İlk satır koddan itibaren düşünülmesi gereken bir temeldir.

Paylaş
Yazar hakkında
Ahmet Ertaş
Ahmet ErtaşCo-Founder & Technical Lead

20+ yıl deneyimli yazılım mimarı. Next.js, React, TypeScript ve modern web teknolojileri konusunda uzman. Novexing'in teknik altyapısını tasarlıyor.