XSS (Cross-Site Scripting) Nedir?
XSS (Cross-Site Scripting) Nedir?
Cross-Site Scripting (XSS), saldırganların bir web uygulamasına zararlı JavaScript kodları enjekte ederek diğer kullanıcıların tarayıcısında bu kodları çalıştırmasına neden olan bir güvenlik açığıdır. Bu saldırılar genellikle kullanıcı girdisinin doğru filtrelenmemesi sonucu oluşur.
Nasıl Çalışır?
Uygulama, kullanıcıdan aldığı veriyi HTML içeriğine doğrudan eklediğinde saldırgan, aşağıdaki gibi zararlı bir kod enjekte edebilir:
<script>alert('XSS saldırısı!')</script>
Bu kod, sayfa yüklendiğinde kullanıcının tarayıcısında çalışır.
XSS Türleri
- Stored XSS: Zararlı kod veritabanına kaydedilir, her kullanıcıya sunulur.
- Reflected XSS: Zararlı kod URL ile taşınır, sunucudan yansıyarak tarayıcıda çalışır.
- DOM-Based XSS: Saldırı doğrudan tarayıcıdaki JavaScript ile olur, sunucuya ulaşmaz.
Olası Tehlikeler
- Oturum çalma (session hijacking)
- Phishing saldırıları
- Kullanıcı bilgilerini çalma
- Sayfa içeriğini değiştirme
- Tarayıcıda kötü niyetli komutlar çalıştırma
Korunma Yöntemleri
- Output Encoding: HTML, JavaScript ve URL içeriğinde özel karakterleri kodlayın.
- Input Validation: Kullanıcıdan gelen verileri beyaz liste ile doğrulayın.
- Content Security Policy (CSP): Sayfa içi script çalışmasını engelleyin veya sınırlandırın.
- HTTPOnly Cookie: JavaScript'in cookie'ye erişmesini engeller.
- Framework Güvenliği: React, Angular gibi framework’ler otomatik escaping yapar.
Test Etme Yöntemleri
<script>alert(1)</script>gibi basit payloadlarla manuel test- XSS Hunter gibi araçlarla payload takibi
- Burp Suite ile güvenlik testleri
Sonuç
XSS saldırıları, web uygulamalarında en sık karşılaşılan açıklardan biridir. Güvenli kodlama alışkanlıkları ve tarayıcı tabanlı savunmalarla bu tür saldırıların büyük bir kısmı önlenebilir. Geliştirici olarak her çıktının nereye gittiğini ve nasıl işlendiğini bilmek kritik öneme sahiptir.
