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.
İlgili Terimler
Clickjacking, kullanıcıyı görünmez veya yanıltıcı katmanlarla kandırıp farkında olmadan tıklama yaptıran arayüz saldırısıdır.
CSPCSP, tarayıcıya hangi script, stil, görsel ve bağlantı kaynaklarının izinli olduğunu söyleyen, XSS etkisini sınırlayan politikadır.
CSRFCSRF, oturum cookie'si olan kullanıcıyı fark ettirmeden saldırganın seçtiği işlemi yapmaya zorlayan web saldırısıdır.
Güvenlik BaşlıklarıGüvenlik başlıkları, tarayıcıya sayfanın nasıl yüklenip korunacağını söyleyen HTTP yanıt kurallarıdır; XSS ve clickjacking riskini azaltır.
SQL InjectionSQL injection, doğrulanmamış girdilerin SQL sorgusuna karışmasıyla veri sızıntısı, yetki aşımı veya kayıt silme riski doğurur.