XSS Nedir?

İngilizce: XSS (Cross-Site Scripting)

XSS, güvenilmeyen içeriğin tarayıcıda script olarak çalışmasıyla oturum çalma, sahte işlem ve veri sızıntısı riski yaratır.

XSS Nedir?

XSS (Cross-Site Scripting), saldırganın kontrol ettiği içeriğin başka kullanıcıların tarayıcısında JavaScript olarak çalışmasıdır. Sorun çoğu zaman yorum alanı, profil bilgisi, arama sonucu, URL parametresi veya zengin metin editörü gibi kullanıcı girdisinin HTML’e güvenli basılmamasından kaynaklanır.

Başarılı bir XSS saldırısı oturum çerezlerini çalmaya, kullanıcı adına işlem yaptırmaya, sahte form göstermeye veya hassas ekran verilerini dışarı aktarmaya yol açabilir.

XSS Türleri

  • Stored XSS: Zararlı içerik veritabanına kaydedilir ve sayfayı açan herkese servis edilir.
  • Reflected XSS: Zararlı veri URL veya form isteğiyle gelir ve yanıtta hemen çalışır.
  • DOM-based XSS: Açık sunucudan çok tarayıcı tarafındaki JavaScript’in DOM’u güvenli olmayan biçimde değiştirmesinden doğar.

Korunma Yöntemleri

XSS’i önlemenin temel yolu, veriyi çıktığı bağlama göre kaçışlamak ve güvenilmeyen HTML’i sanitize etmektir. React, Vue ve benzeri framework’lerin varsayılan escape davranışı korunmalı; innerHTML gibi alanlar dikkatle sınırlandırılmalıdır. Oturum çerezlerinde HttpOnly, Secure ve SameSite bayrakları kullanılmalı, içerik güvenliği için CSP uygulanmalıdır.

XSS, veritabanına komut enjekte eden SQL Injection ile karıştırılmamalıdır. SQL injection sunucu ve veritabanını hedeflerken XSS kullanıcının tarayıcı oturumunu hedefler. İki risk de kod incelemesi, otomatik test ve düzenli güvenlik denetimiyle takip edilmelidir.