Kullanıcı kontrolündeki girdi üzerinde yeterli denetimlerin olmamasından dolayı oluşan bir zaafiyettir. XSS açıklığı en basit anlamda,; kullanıcıdan alınan girdi tekrardan kullanıcıya yansıtılmasıyla keşfedilebilir.
Örneğin aşağıdaki gibi bir arama yaptığınızı düşünün.
Arama sonucunda aradığınız değer için aşağıdaki gibi bir sonuç dönüyor olsun.
Gördüğünüz üzere girdi yaptık ve girdiğimiz değer bize yansıtıldı. Buna hemen XSS demek doğru değildir. Ancak girdi denetimi yapmış mıdır diye kafalarda bir soru işareti! Bunu denemeler yaparak görebilirsiniz.
Şimdi tekrardan aynı alana aşağıdaki gibi bir girdi yapalım.
<script>alert("gokhan kesici")</script>
Evet şüphelenmekte haklı çıktık. Yazılımcı girdi kontrolü yapmamış ve biz ne verirsek onu bize yansıtıyor.
Burada girdi alanına bir javascript kodu girdik. Tarayıcılar gelen javascript kodlarını işlediklerinden tarayıcıya kodun sonucunu yukarıdaki gibi yansıttı.
XSS açıklığı farklı şekillerde karşımıza çıkabilir. İsterseniz gelin bir de XSS türlerine bakalım.