İçeriğe geç
parazade

XSS Nedir?

İngilizce: Cross-Site Scripting

Yayın: · Son güncelleme:

XSS Nedir? Kısaca

XSS (Cross-Site Scripting), saldırganın bir web sitesine zararlı betik yerleştirip bu betiği başka kullanıcıların tarayıcısında çalıştırmasına yol açan bir web güvenlik açığıdır. Oturum çalma ve sahte form gösterme için kullanılır.

XSS nedir?
İçindekiler
  1. XSS nedir?
  2. Hangi türleri var?
  3. Kullanıcı ve geliştirici ne yapmalı?

XSS nedir?

XSS, bir web sitesinin kullanıcıdan aldığı veriyi süzmeden sayfaya basması sonucu ortaya çıkan bir güvenlik açığıdır. Saldırganın yazdığı betik, siteye güvenen diğer ziyaretçilerin tarayıcısında o sitenin koduymuş gibi çalışır. Sorun kullanıcının bilgisayarında değil, sitenin kodundadır.

Hangi türleri var?

Üç temel türü vardır ve fark, zararlı kodun nerede durduğudur.

Tür Kod nerede?
Depolanmış (stored) Yorum, profil gibi alanlarda sunucuya kaydedilir
Yansıtılan (reflected) Bağlantının içinde gelir, sayfa onu geri yansıtır
DOM tabanlı Sayfanın kendi JavaScript kodu veriyi güvensiz işler

Örneğin bir forumun yorum alanı süzülmüyorsa, oraya bırakılan bir betik o konuyu açan herkeste çalışabilir. Bu betik oturum çerezini okumaya ya da sayfanın üstüne sahte bir giriş formu koymaya çalışabilir.

Kullanıcı ve geliştirici ne yapmalı?

Geliştirici tarafında asıl çözüm, çıktıyı bağlama uygun biçimde kodlamak (output encoding) ve girdiyi doğrulamaktır. Modern çatıların (framework) varsayılan kaçış mekanizmalarını kapatmamak, İçerik Güvenlik Politikası (CSP) başlığı eklemek ve çerezlere HttpOnly bayrağı vermek riski ciddi ölçüde azaltır. XSS, OWASP Top 10 listesinde enjeksiyon başlığı altında yer alır.

Kullanıcı olarak yapabileceğiniz şey sınırlıdır ama işe yarar. Tarayıcınızı güncel tutun, tanımadığınız kaynaklardan gelen uzun ve garip karakterli bağlantılara tıklamayın. Bildiğiniz bir sitede beklenmedik bir şifre penceresi açılırsa bilgilerinizi girmeyin, adresi kendiniz yazarak siteye yeniden girin.

Sıkça Sorulan Sorular

XSS ile SQL enjeksiyonu arasındaki fark nedir?

SQL enjeksiyonu sunucudaki veritabanını hedef alır. XSS ise zararlı kodu sitenin diğer ziyaretçilerinin tarayıcısında çalıştırır. İkisi de girdinin güvensiz işlenmesinden doğar.

Antivirüs XSS saldırısını engeller mi?

Çoğu zaman engellemez, çünkü zararlı kod güvendiğiniz sitenin içinden gelir. Asıl koruma sitenin kodunda yapılır. Kullanıcı tarafında güncel tarayıcı ve dikkatli bağlantı kullanımı riski azaltır.

İlgili terimler

SQL Enjeksiyonu(SQL Injection)SQL enjeksiyonu (SQL injection), bir web uygulamasının kullanıcıdan aldığı veriyi denetlemeden veritabanı sorgusuna eklemesi sonucu saldırganın veritabanında izinsiz sorgu çalıştırabildiği bir güvenlik açığıdır.CSRF(Cross-Site Request Forgery)CSRF (Cross-Site Request Forgery), oturumu açık bir kullanıcının tarayıcısını, kullanıcının haberi olmadan güvendiği bir siteye istek göndermeye zorlayan saldırı türüdür. Şifre ya da e-posta değiştirme gibi işlemler hedef alınır.OWASP Top 10OWASP Top 10, web uygulamalarındaki en kritik güvenlik risk kategorilerini veri ve topluluk görüşüne dayanarak sıralayan, OWASP'ın birkaç yılda bir güncellediği farkındalık belgesidir.Web Uygulama Güvenlik Duvarı(Web Application Firewall)Web uygulama güvenlik duvarı (WAF), bir web sitesine ya da web uygulamasına gelen HTTP isteklerini inceleyerek SQL enjeksiyonu, XSS ve kötü niyetli bot trafiği gibi saldırıları uygulamaya ulaşmadan engelleyen güvenlik katmanıdır.Betik(Script)Betik (script), genellikle derlenmeden doğrudan çalıştırılan ve belirli bir işi otomatikleştirmek için yazılan kısa programdır. Bash, Python ve JavaScript gibi dillerle yazılır; yedekleme, dosya düzenleme ve veri işleme gibi işlerde kullanılır.JavaScriptJavaScript, web sayfalarına buton tıklaması, form doğrulama ve anlık güncelleme gibi etkileşimler kazandıran, tarayıcıların yanı sıra Node.js ile sunucuda da çalışabilen yaygın bir programlama dilidir.FrameworkFramework, bir uygulamanın temel yapısını ve çalışma kurallarını hazır olarak sunan yazılım iskeletidir. Geliştirici bu iskeletin içine kendi kodunu yerleştirir; yönlendirme, veritabanı ve güvenlik gibi ortak işler framework tarafından karşılanır.