XSS (Cross-Site Scripting) Nedir
Kullanıcı Taraflı En Sinsi Web Saldırısı
“En tehlikeli saldırı, sunucuyu değil; kullanıcının tarayıcısını kandırandır.”
— Ersan Karavelioğlu
XSS Nedir
XSS (Cross-Site Scripting), saldırganın zararlı
JavaScript kodunu masum bir web sayfasına enjekte ederek
kullanıcının tarayıcısında çalıştırmasıdır.

Hedef sunucu değil,
kullanıcıdır.

Güven zinciri içeriden kırılır.
Neden Bu Kadar Sinsidir

Kod, güvenilir bir site üzerinden çalışır.

Kullanıcı hiçbir şey fark etmeyebilir.

Tarayıcı “güveniyorum” der ve çalıştırır.
XSS Nasıl Çalışır

Uygulama, kullanıcı girdisini filtrelemeden sayfaya basar.

Saldırgan script ekler.

Tarayıcı bunu sayfanın parçası sanır.
XSS Türleri Nelerdir
Stored XSS – Kalıcı (veritabanında saklı).
Reflected XSS – Anlık (URL/parametre üzerinden).
DOM-Based XSS – Tarayıcı taraflı mantık hatası.

Etki alanı farklı, tehlike aynıdır.
Stored XSS Neden En Tehlikelisidir

Zararlı kod kalıcıdır.

Sayfayı açan herkes etkilenir.

Forumlar, yorum alanları başlıca hedeftir.
Reflected XSS Nasıl Tetiklenir

Kötü niyetli link.

Phishing ile kullanıcı tıklatılır.

Etki kısa ama hedeflidir.
DOM-Based XSS’in Farkı Nedir

Sunucu tarafında iz bırakmaz.

Tüm açık
frontend JavaScript mantığındadır.

WAF’lerin kaçırabildiği türdür.
XSS ile Neler Yapılabilir
Cookie çalma (session hijacking).

Kullanıcı adına işlem yapma.

Phishing ekranları basma.

Hesap ele geçirme zinciri başlar.
XSS ve Session Hijacking

Oturum çerezi çalınır.

Saldırgan kullanıcı gibi davranır.

Şifreye gerek kalmaz.
XSS ve CSRF İlişkisi

XSS, CSRF saldırılarını
kolaylaştırır.

Tarayıcı zaten kandırılmıştır.

Zincir saldırılar burada doğar.

Neden Hâlâ Yaygın

Yanlış output handling.

Eski frontend kodları.

“Sadece metin” sanılan alanlar.

Input Validation Yeterli mi

Hayır.

XSS’in asıl çözümü
output encoding’dir.

Nerede gösteriyorsan, oraya göre encode et.

Output Encoding Nedir

HTML, JS, URL, Attribute bağlamına göre kaçış.

<script> metne dönüşür.

Kod çalışamaz hâle gelir.

Content Security Policy (CSP)

Tarayıcıya “nereden script çalışabilir” öğretir.

Inline script’leri kısıtlar.

XSS etkisini ciddi biçimde düşürür.

HttpOnly ve Secure Cookie

Cookie’ler JavaScript’ten erişilemez.

HTTPS zorunlu olur.

XSS olsa bile oturum çalınamaz.

WAF XSS’i Engeller mi

Çoğu bilinen payload’ı yakalar.

Ama DOM-Based XSS kaçabilir.

WAF destekleyicidir, çözüm değildir.

Küçük Siteler Riskli mi

Evet.

Botlar otomatik XSS tarar.

Kullanıcı sayısı değil,
açık önemlidir.

En Büyük Yanılgı

“Bizde script çalıştıracak yer yok.”

Her render edilen veri potansiyeldir.

XSS, varsayımla değil kodla engellenir.

Son Söz
Tarayıcıya Söylenen Yalan

XSS, kullanıcıya söylenen
en tehlikeli yalandır.

Güvenilir görünen sayfa, saldırının kılıfıdır.

Güvenli web, kullanıcı tarafını korumadan tamamlanmaz.
“XSS, uygulamaya değil; kullanıcıya atılan imzadır.”
— Ersan Karavelioğlu