"Enter"a basıp içeriğe geçin

XSS (Cross-Site-Scripting) açığı nedir? Nasıl önlenir?

Selamlar,

Bu yazımda sizlere XSS açıklarından ve XSS den korunma yollarını anlatacağım.

XSS açığı nedir?

HTML kodlarının arasına zararlı/zararsız kod gömülmesi ile kullanıcının tarayıcısında istenen kodun çalıştırılabilmesi olarak tanımlanır. XSS açığının 3 türü vardır. Bunlar Stored XSS, Reflected XSS ve DOM XSS’dir.

Stored XSS: Stored XSS açığı çok tehlikelidir. Bu açık, depolanan (iletişim formları, kayıt formları vb.) formlarda sıklıkla görülür. Ve herkesi kolayca etkisi altına alabilir. Örnek olarak, yönetim panelli bir web siteniz var ve kayıt formunuz var. Eğer bu formda XSS açığı varsa ve kötü/iyi niyetli kişi betik kodunu formadaki alanladan birine yazıp formu gönderirse, yazdığı betik veritabanında depolanır. Ardından siz yönetim panelinizden kullanıcıları listele gibi formda girilen verileri gösteren bir sayfaya girerseniz o betik sizin tarayıcınızda çalışacaktır.

Reflected XSS: Bu saldırı URL alanlarına veya veri giriş alanlarına yapılır. Bu türdeki XSS saldırısı, sadece yapan kullanıcı tarafından görülür. Ancak saldırgan bu URL adreslerini kurbanlara e-posta vb. yollarla ulaştırabilir. Örenek olarak, bir web siteniz var ve giriş yapma ekranınız var. Hatalı bir giriş yapılınca siz kullanıcıyı “https://example.com/gir.php?mesaj=Giriş Hatalı Oldu!” URLsine gönderiyorsunuz. Saldırgan, URLnin “?mesaj=Giriş Hatalı Oldu!” bölümünü “?mesaj=<h1>XSS AÇIĞI</h1>” şeklinde değiştirirse hata mesajı olarak büyük bir puntoyla “XSS AÇIĞI” verir.

DOM XSS: DOM XSS saldırısı en tehlikeli XSS saldırı türüdür. JavaScript kodlarının zararlı bir şekilde kullanılması ile yapılır. Bu saldırı türünde kullanılan DOM betikleri ile hedef web sitesinin index’i değiştirilebilir, sayfanın kodları ile oynanabilir, kripto para madenciliği bile yapılabilir.

Kendimizi XSS açıklarından nasıl koruruz?
GET veya POST ile aldığınız verileri, strip_tags fonksiyonunu kullanarak görderilen “< ve >” işaretlerini kırpıp kodu geçersiz kılabilirsiniz. Örnek:

<?php
$test = strip_tags($_POST['test']);
echo $test;
?>
Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir