📌 XSS Zafiyeti Nerede Oluşur?
XSS zafiyeti, web uygulamalarında kullanıcıdan alınan verilerin yeterince filtrelenmeden veya encode edilmeden HTML içeriğinde veya JavaScript kodları içinde kullanılması durumunda ortaya çıkar. Genellikle şu yerlerde görülür:
Form inputları (örneğin: yorum, arama kutusu, profil bilgisi)
URL parametreleri (örneğin: ?search=...)
HTTP header bilgileri (örneğin: Referer veya User-Agent)
DOM manipülasyonları (özellikle JavaScript tarafında innerHTML gibi işlemler)
🔧 Müdahale Yöntemleri:
Input Validation (Girdi Doğrulama):
Kullanıcıdan gelen verileri sadece izin verilen karakterlerle sınırla.
Örn: Sadece harf ve rakamlara izin verilecekse regex kullan (örnek: ^[a-zA-Z0-9]+$)
Output Encoding (Çıktı Encode Etme):
Kullanıcı verisi HTML’de kullanılmadan önce encode edilmeli.
Örneğin: < → <, " → "
JavaScript içindeki veri için ayrıca JavaScript encoding yapılmalı.
Hazır Güvenlik Kütüphanelerini Kullan:
PHP için: htmlspecialchars()
Java için: OWASP ESAPI
.NET için: HttpUtility.HtmlEncode()
Content Security Policy (CSP) Kullanın:
Sayfanın hangi kaynaklardan script çalıştırabileceğini sınırla.
Örnek CSP header:
Content-Security-Policy: default-src 'self'; script-src 'self'
DOM XSS'e Karşı Güvenli JavaScript Yazımı:
innerHTML, document.write gibi fonksiyonlardan kaçınılmalı.
Bunun yerine textContent veya setAttribute gibi güvenli alternatifler kullanılmalı.
Açan kullanıcı: Ali Tarlacı | Tarih: 24.06.2025 01:36