XSS (Cross-Site Scripting), kötü niyetli kodların (genellikle JavaScript) güvenlik açığı bulunan web sitelerine enjekte edilerek, kullanıcıların tarayıcılarında çalıştırılmasını sağlayan bir siber saldırı türüdür. XSS saldırıları, kullanıcı oturumlarını çalmak, kötü amaçlı içerik yüklemek veya sahte sayfalar oluşturmak gibi amaçlarla kullanılır.
XSS Türleri
- Stored XSS (Kalıcı XSS)
- Kötü amaçlı kod, veritabanı veya sunucu tarafında kalıcı olarak saklanır.
- Kullanıcı siteyi ziyaret ettiğinde bu kod çalışır.
- Örneğin, bir kullanıcının yorum kutusuna kötü amaçlı bir JavaScript eklemesi ve bu kodun tüm ziyaretçilerde çalışması.
- Reflected XSS (Yansıtılmış XSS)
- Kötü amaçlı kod, doğrudan web sunucusu tarafından çalıştırılmaz, ancak URL parametreleri veya giriş alanları üzerinden yönlendirilir.
- Kullanıcı, saldırgan tarafından hazırlanan özel bir bağlantıya tıkladığında saldırı gerçekleşir.
- DOM-Based XSS (Belge Nesne Modeli XSS)
- Kötü amaçlı kod sunucuya hiç ulaşmadan doğrudan kullanıcının tarayıcısında çalıştırılır.
- JavaScript kodlarının kullanıcıdan gelen verileri kontrolsüz işlemesi ile oluşur.
XSS Saldırılarının Riskleri
- Kullanıcı oturumlarının çalınması
- Kimlik avı saldırıları
- Kötü amaçlı yazılım bulaştırma
- Web sitesinin bozulması
XSS Saldırılarından Korunma Yöntemleri
- Kullanıcı Girişlerini Temizleme (Input Validation & Sanitization)
- Kullanıcıdan gelen her veriyi doğrulamak ve temizlemek
- HTML, JavaScript veya SQL gibi potansiyel tehlikeli karakterleri filtrelemek
- Çıkış Verisini Encode Etme (Output Encoding)
- Kullanıcının girdiği verileri doğrudan HTML içinde göstermemek
- HTML özel karakterlerini dönüştürerek XSS saldırılarını önlemek
- HTTP-Only ve Secure Cookie Kullanımı
- Kullanıcı oturum çerezlerine JavaScript tarafından erişimi engellemek
- HTTP-Only flag’ini kullanarak çerezlerin tarayıcı tarafından okunmasını önlemek
- İçerik Güvenliği Politikası (CSP) Kullanımı
- Tarayıcıların yalnızca güvenli ve izin verilen kaynaklardan içerik çalıştırmasını sağlamak
- Güvenli JavaScript Kütüphaneleri Kullanmak
- React, Angular ve Vue gibi modern kütüphaneler XSS saldırılarını önleyen mekanizmalar sunar
XSS Saldırılarından Korunma İçin Kullanılan Araçlar
- OWASP ZAP – XSS ve diğer güvenlik açıklarını taramak için kullanılır.
- Burp Suite – Güvenlik testleri ve penetrasyon testleri yapmak için kullanılır.
- ESAPI (OWASP Enterprise Security API) – Güvenli giriş doğrulama ve XSS koruması sağlar.
Sonuç
XSS saldırıları, kullanıcı güvenliğini tehdit eden ve web uygulamalarında sıkça görülen güvenlik açıklarından biridir.
- Kullanıcı girdilerini her zaman temizleyin ve doğrulayın.
- Güvenli kodlama tekniklerini kullanarak HTML, JavaScript ve çerezleri koruyun.
- Web sitenizi düzenli olarak güvenlik testlerinden geçirin.
Güçlü bir XSS koruması, hem kullanıcıları hem de sistemleri potansiyel tehditlerden korur.