🔍 HTML Injection Nedir?
HTML Injection, saldırganın bir web uygulamasına zararlı veya istenmeyen HTML kodları enjekte etmesine olanak tanır. Bu saldırı, genellikle bir form, URL parametresi ya da arama kutusu gibi girdi alanlarından yararlanarak yapılır.
🧠 HTML Injection Türleri
1. Stored (Kalıcı) HTML Injection
Saldırganın enjekte ettiği HTML kodu veritabanına kaydedilir ve bu kod daha sonra siteyi ziyaret eden herkese gösterilir.
Örn: Bir yorum kutusuna <h1>Hacklendi</h1>
yazılır ve bu yorum tüm kullanıcılara gösterilir.
2. Reflected (Yansıtılmış) HTML Injection
Kötü amaçlı HTML kodu, URL ya da form aracılığıyla gönderilir ve doğrudan yanıtın içinde yansıtılır.
Örn: example.com/search?q=<b>merhaba</b>
gibi bir istek sonucu "merhaba" kalın olarak gösterilir.
🧪 Basit Bir HTML Injection Örneği
Ve search.php
şöyle olabilir:
Kullanıcı şu şekilde bir giriş yaparsa:
Sayfada çalışacak JavaScript kodu, bir XSS saldırısına dönüşebilir. Bu HTML Injection'dan Cross-Site Scripting (XSS)'e geçişin en net örneğidir.
⚠️ HTML Injection ile Neler Yapılabilir?
-
Kullanıcıya yanıltıcı içerik gösterme (örneğin sahte formlar)
-
Sayfa düzenini bozma
-
Diğer kullanıcılara görsel mesajlar gönderme
-
Başka sitelere yönlendirme linkleri ekleme
-
XSS saldırıları için zemin hazırlama
🛡️ Korunma Yöntemleri
-
Output Encoding: Kullanıcıdan gelen verileri HTML olarak değil, düz metin olarak çıkarmak için encode (örneğin
<
karakterini<
yapmak). -
Input Validation: Girişleri sadece izin verilen karakterlerle sınırlandırmak.
-
White-listing: Sadece belirli karakterlere izin vermek (örneğin sadece harf ve rakamlar).
-
HTML templating sistemleri: Güvenli şablon motorları (örneğin React, Vue gibi modern framework'ler bu tehlikeyi otomatik olarak engeller).
-
Content Security Policy (CSP): Tarayıcının dış kaynaklardan veya inline script’lerden kod çalıştırmasını kısıtlamak.
🕰️ Tarihçesi ve Önem
HTML Injection, 1990’ların sonunda dinamik web sitelerinin artmasıyla yaygınlaştı. Başlangıçta önemsiz gibi görünse de, zamanla XSS gibi daha ciddi saldırıların temel taşı olduğu anlaşıldı. Özellikle kullanıcı verisi ile çalışan tüm uygulamalar için hala büyük bir güvenlik riski oluşturmaktadır.
✅ Özet
Kriter | Açıklama |
---|---|
Açık Adı | HTML Injection |
Tehlike Düzeyi | Orta–Yüksek (XSS’e dönüşebilir) |
Saldırı Tipi | Client-side |
Kapsam | HTML yapısını bozma veya değiştirme |
Çözüm | Input/Output validation + Encoding |