XSS saldırısı (Cross-Site Scripting), web uygulamalarında kullanıcı girdisinin yeterince doğrulanmaması veya temizlenmemesi sonucunda oluşan bir güvenlik açığıdır. Bu açık, saldırganların, hedef web sitesine zararlı JavaScript kodlarını enjekte etmelerine olanak tanır. Bu zararlı kodlar, kullanıcıların tarayıcılarında çalıştırılır ve çeşitli kötü amaçlı faaliyetlerde kullanılabilir.
Siteler arası komut dosyası çalıştırma, savunmasız bir web sitesini kullanıcılara kötü amaçlı JavaScript döndürmesi için manipüle ederek çalışır. Kötü amaçlı kod bir kurbanın tarayıcısında yürütüldüğünde, saldırgan uygulamayla etkileşimlerini tamamen tehlikeye atabilir.
1.Stored XSS: En tehlikeli XSS saldırısı olan bu türde saldırıya izin veren kod sunucuda tutulur ve otomatik olarak yürütülür. Web tarayıcıları basit seviyede ki zararlı kodların çoğunu engellemiş olsa da halen kullanılan kritik bir açıktır.Veri tabanlarında kayıtlı olan kalıcı zararlı kodlardır (Payload). Kalıcı bir Xss çeşididir. Fark edilmese sürekli çalışmaya açıktır.
2. Reflected XSS : Kalıcı değildir. Ziyaretçinin bir form giriş alanına veya bir internet adresine (URl: Uniform Resource Locator) istenilen verileri girmek yerine web tarayıcısının çalıştırabileceği JavaScript kodlarının girilmesi ile gerçekleşebilir.
3. DOM XSS: Web tarayıcıların çalışma anında yorumladığı her şeyi DOM kapsamaktadır. Sayfa kaynağında görüntülenmeyen zararlı kod sunucuya gönderilmediğinde, ancak tarayıcıda hemen çalıştırıldığında kullanılan bir yöntemdir.DOM (Document Object Model) ortamının değişmesine bağlı olarak zararlı kod çalıştırılır. Kalıcı veya geçici olabilir. DOM, web sayfasını oluşturan HTML ile programlama dilleri arasında bir standart meydana getirip, HTML yapısından bilgi alışverişinde bulunmasına yardımcı olur.
<
, >
, '
, "
, &
) uygun şekilde kaçış karakterleriyle değiştirilmesiyle yapılabilir.script-src 'self'
gibi bir CSP politikası, yalnızca aynı kaynaktan (self) gelen JavaScript kodlarının çalıştırılmasına izin verir.HTTPOnly
ve Secure
bayraklarıyla işaretlenmelidir. HTTPOnly
bayrağı, JavaScript’in çerezlere erişmesini engellerken, Secure
bayrağı, çerezlerin yalnızca HTTPS üzerinden iletilmesini sağlar.DOMPurify
gibi kütüphaneler, zararlı kodları temizleyebilir.XSS saldırıları, web uygulama güvenliğini ciddi şekilde tehdit edebilir ve bu nedenle geliştiricilerin ve güvenlik uzmanlarının bu saldırılara karşı dikkatli ve hazırlıklı olmaları gerekmektedir. Web uygulamalarının güvenliğini sağlamak için güvenli kodlama uygulamaları ve sıkı güvenlik politikaları uygulamak esastır.
Tüm Hakları Saklıdır