VixSEO

Faz 10: Güvenlik — Security Headers, Auth ve Rate Limiting

8 dk okuma süresiWeb Sitesi Optimizasyon Programı

Neden Önemli?

Her 39 saniyede bir siber saldırı gerçekleşiyor. IBM'in 2024 raporuna göre bir veri ihlalinin ortalama maliyeti 4.88 milyon dolar. KOBİ'lerin %60'ı bir siber saldırıdan sonra 6 ay içinde kapanıyor. Web sitesi güvenliği artık IT departmanının değil, iş sürekliliğinin konusudur.

Google, HTTPS kullanımını sıralama faktörü olarak değerlendirmektedir. Ancak SSL sertifikası tek başına güvenlik sağlamaz. HTTP security headers, XSS koruması, CSRF token'ları ve rate limiting gibi katmanlı güvenlik önlemleri zorunludur.

OWASP Top 10 listesindeki yaygın güvenlik açıkları — injection, broken authentication, XSS, CSRF — hala web uygulamalarının büyük çoğunluğunda bulunmaktadır. Proaktif güvenlik, reaktif müdahaleden her zaman daha ucuzdur.

Kontrol Listesi

  • Content-Security-Policy (CSP): Hangi kaynakların yüklenmesine izin verileceğini belirleyen detaylı politika — script-src, style-src, img-src, font-src, connect-src, frame-src direktifleri. Report-only modunda test edip production'da enforce edin.
  • X-Frame-Options / frame-ancestors: Clickjacking saldırılarına karşı koruma — DENY veya SAMEORIGIN ayarı. CSP frame-ancestors ile eşdeğer modern koruma.
  • Strict-Transport-Security (HSTS): Tüm iletişimin HTTPS üzerinden gerçekleşmesini zorunlu kılan header — minimum 1 yıl max-age, includeSubDomains ve preload direktifleri.
  • X-Content-Type-Options: MIME type sniffing saldırılarını engelleyen nosniff değeri.
  • Referrer-Policy: Referrer bilgisinin ne kadarının paylaşılacağını kontrol eden politika — strict-origin-when-cross-origin önerilen değer.
  • Permissions-Policy: Kamera, mikrofon, geolocation, payment gibi tarayıcı özelliklerine erişimi kontrol eden politika.
  • Rate limiting: API endpoint'leri ve form submission'lar için istek sınırlaması — brute force, DDoS ve abuse koruması. IP tabanlı ve kullanıcı tabanlı limitler.
  • Authentication güvenliği: Güçlü şifre politikası, MFA (Multi-Factor Authentication), session yönetimi, token rotation, brute force koruması.
  • XSS koruması: Input sanitization, output encoding, CSP nonce/hash kullanımı, DOM-based XSS tespiti. React/Next.js varsayılan olarak XSS koruması sağlar ama dangerouslySetInnerHTML dikkat gerektirir.
  • CSRF koruması: State-changing isteklerde CSRF token zorunluluğu, SameSite cookie attribute, Origin/Referer header kontrolü.
  • Dependency güvenliği: npm audit ile düzenli güvenlik taraması, Dependabot/Snyk ile otomatik güvenlik güncellemesi, supply chain saldırı koruması.
  • Error handling: Production'da detaylı hata mesajları göstermeme (stack trace sızıntısı), özel hata sayfaları (404, 500), error logging (Sentry gibi).

Teknik Gereksinimler

Security headers konfigürasyonu (Next.js):

// next.config.ts const securityHeaders = [ { key: 'Content-Security-Policy', value: [ "default-src 'self'", "script-src 'self' 'nonce-{NONCE}' https://www.googletagmanager.com", "style-src 'self' 'unsafe-inline'", "img-src 'self' data: https:", "font-src 'self' https://fonts.gstatic.com", "connect-src 'self' https://www.google-analytics.com", "frame-ancestors 'none'", ].join('; ') }, { key: 'X-Frame-Options', value: 'DENY' }, { key: 'X-Content-Type-Options', value: 'nosniff' }, { key: 'Referrer-Policy', value: 'strict-origin-when-cross-origin' }, { key: 'Strict-Transport-Security', value: 'max-age=63072000; includeSubDomains; preload' }, { key: 'Permissions-Policy', value: 'camera=(), microphone=(), geolocation=()' } ];

Rate limiting (basit implementasyon):

// In-memory rate limiter (production'da Redis kullanın) const rateLimitMap = new Map<string, { count: number; resetTime: number }>(); function rateLimit(ip: string, limit: number, windowMs: number): boolean { const now = Date.now(); const record = rateLimitMap.get(ip); if (!record || now > record.resetTime) { rateLimitMap.set(ip, { count: 1, resetTime: now + windowMs }); return true; } if (record.count >= limit) return false; record.count++; return true; } // Kullanım: 15 dakikada max 100 istek if (!rateLimit(clientIP, 100, 15 * 60 * 1000)) { return new Response('Too Many Requests', { status: 429 }); }

CSRF token implementasyonu:

import { randomBytes } from 'crypto'; function generateCSRFToken(): string { return randomBytes(32).toString('hex'); } // Token'ı cookie'ye set et (httpOnly: false — JS okumalı) // Her POST/PUT/DELETE isteğinde header'dan token'ı al ve cookie ile karşılaştır

Sık Yapılan Hatalar

  1. CSP'yi production'da test etmeden deploy etmek: Yanlış yapılandırılmış CSP, sitenin tamamen çalışmamasına neden olabilir. Önce Content-Security-Policy-Report-Only ile test edin.
  2. Rate limiting'i sadece login'e uygulamak: API endpoint'leri, form gönderim sayfaları ve arama fonksiyonu da abuse edilebilir — tüm kritik endpoint'lere rate limiting ekleyin.
  3. npm audit uyarılarını göz ardı etmek: "Zaten çalışıyor" yaklaşımı, bilinen güvenlik açıklarını kasıtlı olarak göz ardı etmektir. Düzenli güncelleme disiplini şarttır.
  4. HTTPS'i yeterli görmek: SSL/TLS sertifikası transit güvenliğini sağlar ama uygulama katmanı güvenliğini garanti etmez. HSTS, CSP ve diğer header'lar ek katmanlar gerektirir.
  5. Error mesajlarında bilgi sızdırmak: "Kullanıcı bulunamadı" vs "Şifre yanlış" — saldırgana kullanıcı adının geçerli olduğunu söyler. Genel hata mesajı kullanın.

Profesyonel İpuçları

  • SecurityHeaders.com ve Mozilla Observatory ile sitenizin güvenlik başlık puanını düzenli kontrol edin — A+ hedefleyin.
  • Web Application Firewall (WAF) kullanın — Cloudflare, AWS WAF gibi servisler SQL injection ve XSS saldırılarını edge'de bloklar.
  • Penetrasyon testi (pentest) yılda en az 1 kez yaptırın — otomatik tarayıcıların bulamadığı mantıksal açıkları uzman göz bulur.
  • Subresource Integrity (SRI) kullanarak CDN'den yüklenen script'lerin bütünlüğünü doğrulayın — CDN kompromize edilse bile zararlı kod çalışmaz.
  • Bug bounty programı başlatmayı değerlendirin — HackerOne gibi platformlar üzerinden güvenlik araştırmacılarının açıkları bildirmesini teşvik edin.

Bu İşleri Profesyonel Ekibimize Bırakın

Web sitenizin güvenlik altyapısı ve koruma optimizasyonunu uzman ekibimizle hızlı ve hatasız tamamlayın. VixSEO olarak her adımı sizin için planlıyoruz.

Ücretsiz Danışmanlık Alın →

Bu makale faydalı oldu mu?