XSS Nedir?
XSS saldırılarının genel amacı, saldırganların kullanıcıların tarayıcılarında zararlı JavaScript kodları çalıştırarak, kullanıcıya ait bilgileri çalmaktır. Bu bilgiler arasında, kişisel bilgiler, oturum bilgileri (cookie), şifreler ve hatta bankacılık bilgileri bile yer alabilir.
XSS Çeşitleri
1. Reflected XSS:
Reflected XSS, zararlı JavaScript kodlarının, hedef kullanıcının URL’sine veya form gönderisine yerleştirilmesiyle başlar. Bu saldırılar, sunucu tarafından hemen işlenir ve kullanıcının tarayıcısında çalıştırılır. Genellikle, bir linke tıklanarak tetiklenir.
2. Stored XSS:
Stored XSS, daha tehlikeli bir türdür çünkü zararlı kodlar, sunucudaki bir veritabanına yerleştirilir. Bu saldırı türünde, kötü niyetli kodlar, diğer kullanıcılar tarafından görülen içeriklere eklenir ve her ziyaretçi bu zararlı kodları çalıştırır. Bu tür saldırılar, büyük web siteleri için oldukça tehlikeli olabilir.
3. DOM-based XSS:
DOM-based XSS, JavaScript kodunun tarayıcıda çalışırken, DOM (Document Object Model) üzerinde değişiklikler yapması sonucu oluşur. Bu tür saldırılar, genellikle kullanıcı etkileşimleriyle tetiklenir ve doğrudan sunucuya gitmeden tarayıcıda gerçekleşir.
XSS Saldırılarından Nasıl Korunabilirsiniz?
1. Kullanıcı Girdilerini Doğru Şekilde Temizleyin:
Web sitenizdeki tüm kullanıcı girdilerini temizlemek, en önemli koruma yöntemidir. Giriş alanlarına yerleştirilen zararlı kodları engellemek için her zaman kullanıcıdan gelen veriyi doğrulamalı ve zararlı karakterleri filtrelemelisiniz.
2. Çift Kontrol Etme (Escaping):
JavaScript veya HTML içine yerleştirilen özel karakterleri kaçırmak, XSS saldırılarına karşı etkili bir başka yöntemdir. Bu, potansiyel olarak tehlikeli HTML etiketlerini ve JavaScript kodlarını güvenli hale getirebilir.
3. Güvenli Çerezler (Cookies) Kullanmak:
Web uygulamanızda çerezler kullanıyorsanız, bunları "HttpOnly" ve "Secure" özellikleriyle işaretleyin. Bu, çerezlerin JavaScript tarafından erişilememesini sağlar ve böylece XSS saldırılarının etkisini azaltır.
4. Content Security Policy (CSP) Uygulamak:
CSP, sayfanızın yalnızca güvenilir kaynaklardan içerik yüklemesine izin verir. Bu güvenlik politikası, XSS saldırılarına karşı ek bir koruma katmanı sağlar.
XSS Saldırılarına Örnek Kod
```html
```
Eğer bu form doğru şekilde temizlenmezse, bir kullanıcı aşağıdaki gibi zararlı bir yorum gönderebilir:
```html
```
Bu, siteye gelen her kullanıcı tarafından çalıştırılacak ve bir uyarı mesajı gösterilecektir.
XSS Saldırısından Korunma Örneği
```html
```
Bu örnekte, "escape" fonksiyonu kullanıcıdan gelen girdileri güvenli hale getirir ve zararlı JavaScript kodlarının çalışmasını engeller.