# XSS vs CSRF

Adres: https://softwaredictionary.org/tr/karsilastirma/xss-vs-csrf
Son güncelleme: 2026-09-30

Kısaca: XSS, güvenilen bir sitede çalışacak kötü amaçlı betik enjekte eder; CSRF ise oturumu açık kullanıcının tarayıcısını o siteye istenmeyen istek atmaya kandırır.

## XSS ile CSRF arasındaki fark nedir?

Siteler arası betik çalıştırma (XSS), bir uygulama güvenilmeyen girdiyi kaçış (escape) uygulamadan bir sayfaya kattığında olur; böylece saldırganın JavaScript'i diğer kullanıcıların tarayıcılarında sitenin tüm yetkileriyle çalışır. Siteler arası istek sahteciliği (CSRF) ise kötü amaçlı bir sayfa kurbanın tarayıcısına, oturum açtığı bir siteye istek yaptırdığında olur ve tarayıcı çerezlerini kendiliğinden ekler.

Fark, saldırganın neyi denetlediğidir. XSS'te saldırganın kodu sizin origin'inizde çalışır; bu yüzden sayfayı okuyabilir, veri çalabilir ve kullanıcı gibi her türlü işlemi yapabilir. CSRF'de saldırgan hiçbir şeyi okuyamaz; yalnızca körlemesine bir istek atıp bir e-posta adresi ya da para transferi gibi bir şeyi değiştirmesini umabilir.

Savunmalar da farklıdır. XSS; çıktıya kaçış uygulayarak, izin verdiğiniz HTML'i temizleyerek (sanitize), `innerHTML` gibi güvensiz API'lerden kaçınarak ve bir Content Security Policy ekleyerek önlenir. CSRF ise CSRF karşıtı token'lar, `SameSite` cookie'leri ve veri değiştiren isteklerde `Origin` başlığının denetlenmesiyle önlenir. XSS ayrıca CSRF korumasını da aşar, çünkü kendi sitenizde çalışan bir betik token'ı okuyabilir.

Sık yapılan bir yanlış, modern framework'lerin ve tarayıcıların iki saldırıyı da geçersiz kıldığı düşüncesidir. Framework'ler çıktıya varsayılan olarak kaçış uygular ve bazı tarayıcılar cookie'leri aksi belirtilmedikçe artık `SameSite=Lax` sayar; ama ham HTML oluşturma, yanlış yapılandırılmış cookie'ler ve veriyi değiştiren `GET` istekleri gerçek uygulamaları hâlâ savunmasız bırakır.

| Özellik | XSS | CSRF |
| --- | --- | --- |
| Kötüye kullanılan güven | Kullanıcının web sitesine güveni | Web sitesinin kullanıcının tarayıcısına güveni |
| Saldırı kodunun çalıştığı yer | Hedef sitede, kurbanın tarayıcısında | Saldırganın kendi sitesinde |
| Veri okuyabilir mi | Evet: sayfa içeriği, token'lar, betiğin ulaşabildiği her şey | Hayır: istekler körlemesine gönderilir ve yanıtlar gizli kalır |
| Kök neden | Kaçış uygulanmadan oluşturulan güvenilmeyen girdi | Yalnızca kendiliğinden gönderilen çerezlerle doğrulanan istekler |
| Ana savunmalar | Çıktıya kaçış uygulama, HTML temizleme, Content Security Policy | CSRF token'ları, SameSite cookie'leri, Origin başlığı denetimleri |
| Tipik etki | Oturum hırsızlığı, hesabın ele geçirilmesi, tahrif edilmiş sayfalar | İstenmeyen transferler, e-posta veya parola değişiklikleri |

## XSS şu durumlarda doğru seçim

- Sayfalarınız yorumlar ya da profiller gibi kullanıcı tarafından üretilen içerik gösteriyor.
- Kod innerHTML ile HTML ekliyor ya da ham işaretleme (markup) oluşturuyor.
- URL parametreleri ya da arama terimleri sayfaya geri yansıtılıyor.

## CSRF şu durumlarda doğru seçim

- Uygulamanız istekleri doğrulamak için cookie'lere dayanıyor.
- Formlar ya da uç noktalar veriyi CSRF token'ı veya Origin denetimi olmadan değiştiriyor.
- GET istekleri kayıt silmek ya da para taşımak gibi eylemler gerçekleştiriyor.

## Sık sorulan sorular

**CSRF koruması XSS'i durdurur mu?**

Hayır. CSRF token'ları XSS'e karşı hiçbir şey yapmaz; bir XSS açığı CSRF token'larını okuyup bu korumayı bile aşabilir. Her saldırının kendi savunmasına ihtiyacı vardır.

**SameSite cookie'leri CSRF'yi önler mi?**

`SameSite=Lax` veya `Strict`, cookie'leri siteler arası isteklerde göndermeyerek CSRF saldırılarının çoğunu engeller. CSRF token'ları ya da `Origin` denetimleriyle birlikte en iyi çalışır; bunlar eski tarayıcıları ve kardeş alt alan adlarından gelen saldırıları da kapsar.

**XSS mi CSRF mi daha tehlikeli?**

XSS genellikle daha ciddidir; çünkü saldırganın betiği veri okuyabilir ve kullanıcının yapabildiği her şeyi yapabilir. CSRF körlemesine isteklerle sınırlıdır, ama hesap bilgilerini değiştirmek gibi yine de ciddi zarar verebilir.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
