İçeriğe geç

Rehber

Web formlarında güvenlik: CSRF, XSS ve spam korumasının temelleri

Bir web formu, doğru korunmadığında hem kullanıcı verisini hem de sistemi riske atabilir. OWASP'ın önerilerine dayanan temel korumalar.

2 dk okumaİleri seviye
Web formlarında güvenlik: CSRF, XSS ve spam korumasının temelleri — editoryal kapak görseli

Bir iletişim formu, kayıt formu veya yorum alanı, görünüşte basit bir arayüz bileşeni olsa da; doğru korunmadığında saldırganların sisteme veri enjekte etmesine, başka bir kullanıcı adına işlem yapmasına veya sistemi spam ile doldurmasına açık bir kapı olabilir.

Üç temel tehdit

Web formlarını hedef alan CSRF, XSS ve spam tehditlerini gösteren diyagram
Web formlarını hedef alan üç temel tehdit türü ve etki alanları.

CSRF (Cross-Site Request Forgery)

CSRF, bir kullanıcının oturum açmışken fark etmeden kötü niyetli bir isteği (örneğin parola değiştirme) tetiklemesine neden olan bir saldırı türüdür. OWASP'ın önerdiği temel savunma, her form gönderiminde tahmin edilemeyen, oturuma özgü bir CSRF token'ının doğrulanmasıdır — token eşleşmezse istek reddedilir.

XSS (Cross-Site Scripting)

XSS, bir formdan girilen verinin başka bir kullanıcıya işlenmemiş/temizlenmemiş halde HTML olarak gösterilmesi sonucu kötü niyetli script'in tarayıcıda çalışmasıdır. OWASP'ın XSS Prevention Cheat Sheet'ine göre temel savunma, kullanıcı girdisinin gösterileceği bağlama (HTML, HTML özniteliği, JavaScript, URL) göre doğru şekilde kaçışlanmasıdır (escaping) — tek bir genel 'temizleme' fonksiyonu her bağlam için güvenli değildir.

Spam

Spam, güvenlik açığından çok kaynak israfı ve veri kirliliği sorunudur, ancak bazen daha büyük bir saldırının (kimlik avı bağlantısı yayma) taşıyıcısı olabilir. Bot trafiğini engellemek için honeypot alanları, oran sınırlama (rate limiting) ve gerektiğinde CAPTCHA gibi katmanlar kullanılır.

Katmanlı savunma özeti

TehditTemel savunmaEk katman
CSRFOturuma özgü, tahmin edilemeyen token doğrulamaSameSite çerez özniteliği
XSSBağlama uygun çıktı kaçışlama (output encoding)Content Security Policy (CSP) başlığı
SpamHoneypot alan + oran sınırlamaCAPTCHA (yalnızca gerektiğinde, kullanıcı deneyimini bozmadan)
Form güvenliği tehditlerine karşı katmanlı savunma özeti

Sunucu tarafı doğrulamanın vazgeçilmezliği

İstemci tarafı (JavaScript) doğrulama yalnızca kullanıcı deneyimini iyileştirir — bir saldırgan tarayıcı doğrulamasını kolayca atlayabilir. Her formun, sunucu tarafında bağımsız ve eksiksiz bir doğrulama/temizleme adımından geçmesi, güvenliğin gerçek temelidir.

Sık yapılan hatalar

  • CSRF token'ını yalnızca formda göstermek ama sunucu tarafında doğrulamamak
  • Kullanıcı girdisini veritabanına kaydederken temizlemek ama ekrana basarken tekrar kaçışlamayı unutmak
  • Tüm formlara ayrım gözetmeksizin CAPTCHA eklemek (dönüşüm oranını gereksiz yere düşürür)
  • Dosya yükleme formlarında yalnızca dosya uzantısını kontrol edip gerçek içerik türünü doğrulamamak

Kategoriler

Etiketler

Kaynaklar

  1. OWASP — Cross-Site Request Forgery Prevention Cheat Sheet
  2. OWASP — Cross Site Scripting Prevention Cheat Sheet

Paylaş