XSS üç ana türde görülür:
- Yansıtılan XSS: Zararlı girdi isteğin içinde gelir ve yanıtta doğrudan yansıtılır.
- Depolanan XSS: Zararlı içerik veritabanına kaydedilir ve sayfayı görüntüleyen herkese sunulur (yorum, profil alanı gibi).
- DOM tabanlı XSS: Açık, sunucuda değil tarayıcıdaki JavaScript kodunda bulunur.
Başarılı bir XSS saldırısı; oturum çerezlerinin çalınmasına, kullanıcı adına işlem yapılmasına, sayfa içeriğinin değiştirilmesine veya sahte giriş formları gösterilmesine yol açabilir.
Korunma:
- Kullanıcı verisini HTML, öznitelik, JavaScript veya URL bağlamına uygun şekilde kodlayın; otomatik kodlama yapan şablon motorları kullanın.
- Zengin metin gerekiyorsa güvenilir bir temizleme (sanitization) kütüphanesi kullanın.
- Ek katman olarak sıkı bir CSP uygulayın.
- Oturum çerezlerinde
HttpOnly,SecureveSameSiteözniteliklerini kullanın.