Modern Web Uygulamalarında XSS ve SQL Injection Önlemleri
OWASP Top 10 Zaafiyetlerini Kod Seviyesinde Kapatmak
Web uygulamaları her geçen gün karmaşıklaşıyor ancak siber saldırganların kullandığı en popüler iki yöntem yıllardır değişmiyor: XSS (Cross-Site Scripting) ve SQL Injection.
SQL Injection (SQLi) Neden Oluşur ve Nasıl Engellenir?
Eğer kullanıcının bir form alanına girdiği veri (Örn: Kullanıcı Adı), doğrudan veritabanı sorgusunun içine string birleştirme (SELECT * FROM users WHERE username = ' + userInput + ') yöntemiyle dahil ediliyorsa sistem tehlikededir. Saldırgan input alanına ' OR '1'='1 yazarak tüm tabloyu çekebilir.
Çözüm (Prepared Statements): PDO veya modern ORM araçları kullanılarak sorgu şablonu veritabanına önceden gönderilir (Derlenir). Kullanıcı verisi bu şablona sadece bir "Parametre" olarak bağlanır (Bind Parameter). Veritabanı, gelen inputu komut olarak değil, sadece saf metin olarak işler.
Cross-Site Scripting (XSS) Neden Oluşur ve Nasıl Engellenir?
Kullanıcının foruma veya yorum kısmına yazdığı zararlı bir JavaScript kodunun (<script>alert(1)</script>), veritabanına kaydedilip daha sonra o sayfayı ziyaret eden diğer kullanıcıların tarayıcısında çalıştırılmasıdır. Bu sayede oturum çerezleri (Session Cookies) çalınabilir.
Çözüm (Escaping & CSP): Veri ekrana basılmadan önce mutlaka HTML Entity formatına (Örn: `
Raw SQL sorguları yazmak intihardır. PDO ve Prepared Statements (Parametre bağlama) kullandığınız sürece SQL Injection riskini sıfıra indirirsiniz.
Cevap yazmak için giriş yapmalısınız.
Giriş Yap