• Çözümlerimiz
    • Self Servis Teknolojiler
    • Mobil Teknolojiler
    • Web Teknolojileri
  • Başarı Hikayeleri
  • Değerlerimiz
  • Blog
  • İletişim
Yeni Blog: OpenAI Canvas Yeni Yapay Zeka Destekli Yazma ve Kodlama Asistanınız
logo logo
  • Çözümlerimiz
    • Self Servis Teknolojiler
    • Mobil Teknolojiler
    • Web Teknolojileri
  • Başarı Hikayeleri
  • Değerlerimiz
  • Blog
  • İletişim
  • İnsan Kaynakları Yönetimi
  • Argenova
  • Yazılım Geliştirme
  • Girişimcilik
  • Proje Yönetimi
  • Müşteri Hizmetleri
  • Teknoloji

Cross Site Scripting (XSS) Nedir?

Ahmet Hilmi BERBER
Ahmet Hilmi BERBER 14 Mart 2021

Siteler Arası Komut Dosyası Çalıştırma (Cross-Site Scripting - XSS) saldırıları, kötü niyetli komut dosyalarının, başka şekilde iyi huylu ve güvenilir web sitelerine enjekte edildiği bir tür enjeksiyon işlemidir. XSS saldırıları, bir saldırgan, genellikle tarayıcı tarafı komut dosyası biçiminde kötü amaçlı bir kodu farklı bir son kullanıcıya göndermek için bir web uygulaması kullandığında meydana gelir. Bu saldırıların başarılı olmasına izin veren kusurlar oldukça yaygındır ve bir web uygulamasının, doğrulamadan veya kodlamadan ürettiği çıktı içinde bir kullanıcıdan girdi kullandığı her yerde meydana gelir.

Bu yazımızda XSS ile ilgili bilgiler paylaşacağız.

Yazımızda aşağıdaki başlıklara değineceğiz:

  • XSS Saldırıları Nasıl Çalışır? 

  • XSS Saldırılarının Türleri Nelerdir?

  • XSS Saldırılarının Sebepleri Nelerdir?

  • XSS Saldırıları Nasıl Engellenir?

XSS Nasıl Çalışır?

XSS Saldırıları Nasıl Çalışır?

Saldırganlar, genellikle web sitesinin yazılımındaki bir güvenlik açığından yararlanarak gerçekleştirilecek bir web sayfasına kendi kodlarını enjekte ettiklerinde, kurbanın tarayıcısı tarafından çalıştırılan kendi komut dosyalarını da enjekte edebilirler.

JavaScript kurbanın tarayıcı sayfasında çalıştığından, kimliği doğrulanmış kullanıcıyla ilgili hassas ayrıntılar oturumdan çalınabilir, bu da aslında kötü bir aktörün site yöneticilerini hedeflemesine ve bir web sitesini tamamen tehlikeye atmasına olanak tanır.

XSS saldırılarının bir başka popüler kullanımı, güvenlik açığının bir web sitesinin herkese açık sayfalarının çoğunda bulunmasıdır. Bu durumda, saldırganlar kendi reklamlarını, kimlik avı istemlerini veya diğer kötü amaçlı içerikleri ekleyerek web sitesinin ziyaretçilerini hedeflemek için kodlarını enjekte edebilir.

XSS Türleri

XSS Saldırılarının Türleri Nelerdir?

1 - Reflected XSS

Reflected XSS, XSS saldırılarının en basitidir. Bir uygulama bir HTTP isteğinde veri aldığında ortaya çıkar ve bu verileri güvenli olmayan bir şekilde anında yanıt içine dahil eder.

Aşağıda, yansıtılan bir XSS güvenlik açığının basit bir örneği verilmiştir:

https://insecure-website.com/status?message=All+is+well.

<p> Durum: Her şey yolunda. </p>

Uygulama, veriler üzerinde başka herhangi bir işlem yapmaz, bu nedenle bir saldırgan kolaylıkla aşağıdaki gibi bir saldırı oluşturabilir:

https://insecure-website.com/status?message=<script>/*+Kötü+niyetli+kod+*/ </script>

<p> Durum: <script>/* Burada kötü niyetli şeyler var */</script> </p>

Kullanıcı saldırgan tarafından oluşturulan URL'yi ziyaret ederse, saldırganın komut dosyası, kullanıcının uygulamayla oturumu bağlamında kullanıcının tarayıcısında yürütülür. Bu noktada, komut dosyası herhangi bir eylemi gerçekleştirebilir ve kullanıcının erişimi olan herhangi bir veriyi alabilir.

2 - Stored XSS

Stored XSS, uygulama güvenilmeyen bir kaynaktan veri aldığında ortaya çıkar ve bu verileri daha sonraki HTTP yanıtlarına güvenli olmayan bir şekilde dahil eder.

Söz konusu veriler, HTTP istekleri aracılığıyla uygulamaya gönderilebilir; örneğin, bir blog gönderisine yapılan yorumlar, bir sohbet odasındaki kullanıcı takma adları veya bir müşteri siparişine ilişkin iletişim bilgileri. Diğer durumlarda, veriler diğer güvenilmeyen kaynaklardan gelebilir; örneğin, SMTP üzerinden alınan mesajları görüntüleyen bir web posta uygulaması, sosyal medya gönderilerini görüntüleyen bir pazarlama uygulaması veya ağ trafiğinden gelen paket verilerini görüntüleyen bir ağ izleme uygulaması.

Burada, depolanmış bir XSS güvenlik açığının basit bir örneği verilmiştir. Bir mesaj panosu uygulaması, kullanıcıların diğer kullanıcılara gösterilen mesajlar göndermesine izin verir:

<p> Merhaba, bu benim mesajım! </p>

Uygulama, veriler üzerinde başka herhangi bir işlem yapmaz, bu nedenle bir saldırgan, diğer kullanıcılara saldıran bir mesajı kolayca gönderebilir:

<p> <script>/* Burada kötü şeyler var */</script> </p>

3 - DOM Tabanlı XSS

DOM Tabanlı XSS, bir uygulama, güvenilmeyen bir kaynaktan verileri güvenli olmayan bir şekilde, genellikle verileri DOM'a yazarak işleyen bazı istemci tarafı JavaScript içerdiğinde ortaya çıkar.

Aşağıdaki örnekte, bir uygulama, değeri bir giriş alanından okumak ve bu değeri HTML içindeki bir öğeye yazmak için bazı JavaScript kullanır:

var search = document.getElementById ('arama'). değer;

var results = document.getElementById ('sonuçlar');

results.innerHTML = 'Aradığınız:' + arama;

Saldırgan, giriş alanının değerini kontrol edebiliyorsa, kendi komut dosyalarının yürütülmesine neden olan kötü niyetli bir değeri kolayca oluşturabilir:

Şunu aradınız: <img src = 1 onerror = '/* Burada kötü şeyler var */'>

Tipik bir durumda, giriş alanı, URL sorgu dizesi parametresi gibi HTTP isteğinin bir kısmından doldurulur ve saldırganın yansıtılan XSS ile aynı şekilde kötü amaçlı bir URL kullanarak bir saldırı göndermesine izin verir.

XSS Saldırılarının Sebepleri Nelerdir?

XSS güvenlik açığından yararlanan bir saldırgan genellikle şunları yapabilir:

  • Kullanıcının gerçekleştirebileceği herhangi bir eylemi gerçekleştirmek.

  • Kullanıcının erişebildiği tüm verileri okumak.

  • Kullanıcının oturum açma kimlik bilgilerini yakalamak.

  • Web sitesinde sanal yıkım yapmak.

  • Truva atı gibi virüsleri web sitesine enjekte etmek.

XSS Saldırısı

XSS Saldırıları Nasıl Engellenebilir?

Saldırganlar web sitesi açıklarından yararlanmak için çeşitli yöntemler kullanır. Sonuç olarak, XSS saldırısı riskini azaltmak için tek bir strateji yoktur.

XSS kavramı, güvenli olmayan kullanıcı girdisinin doğrudan bir web sayfasında oluşturulmasına dayanır. Kullanıcı girdileri uygun şekilde temizlenirse, XSS saldırıları imkansız olacaktır. Web sitelerinizde kullanıcı girdilerinin kaçmamasını sağlamanın birden çok yolu vardır.

Web sitenizi korumak için, aşağıdaki koruyucu önlemleri alarak web uygulamalarınızı güçlendirmenizi öneririz.

1 - Allowlist Değerleri

Kullanıcı girişini belirli bir izin listesiyle sınırlayın. Bu uygulama, sunucuya yalnızca bilinen ve güvenli değerlerin gönderilmesini sağlar. Kullanıcı girişini kısıtlama, yalnızca bir açılır menünün içeriği gibi hangi verileri alacağınızı biliyorsanız çalışır ve özel kullanıcı içeriği için pratik değildir.

2 - Girişlerde HTML'i Önleyin ve Kısıtlayın

Zengin içerik için HTML gerekli olsa da, güvenilir kullanıcılarla sınırlandırılmalıdır. Bir girdide stil ve biçimlendirmeye izin verirseniz, içeriği oluşturmak için Markdown gibi alternatif yollar kullanmayı düşünmelisiniz.

Son olarak, HTML kullanıyorsanız, güvenli olmayan tüm kodları kaldırmak için DOMPurify gibi sağlam bir temizleyici kullanarak onu filtrelediğinizden emin olun.

3 - Sanitize Değerleri

Bir sayfada kullanıcı tarafından oluşturulan içeriği kullanırken, güvenli olmayan karakterleri ilgili entity’ler ile değiştirerek bunun HTML içeriğiyle sonuçlanmamasını sağlayın. Entity’ler normal bir karakterle aynı görünüme sahiptir, ancak HTML oluşturmak için kullanılamaz.

4 - Çerezlerde HTTPOnly Bayraklarını Kullanın

Oturum çerezleri, bir web sitesinin bir kullanıcıyı istekler arasında tanımasına olanak tanıyan bir mekanizmadır ve saldırganlar, çerezlerini dışarı sızarak sıklıkla yönetici oturumlarını çalar. Bir tanımlama bilgisi çalındığında, saldırganlar kimlik bilgileri veya yetkili erişim olmadan hesaplarında oturum açabilir.

JavaScript'in tanımlama bilgisinin içeriğini okumasını önlemek için HttpOnly tanımlama bilgilerini kullanın, bu da bir saldırganın oturumu çalmasını zorlaştırır.

5 - WAF Kullanın

Web sitenize yönelik saldırıları sanal olarak engellemek için bir güvenlik duvarı kullanabilirsiniz. Bu yöntem, kötü niyetli istekler web sitenize ulaşmadan önce XSS, RCE veya SQLi gibi saldırıları engeller. Ayrıca DDOS gibi büyük ölçekli saldırılara karşı koruma avantajına da sahiptir.

Sonuç Olarak

Yazımızda web sitelerinde yaygın olarak karşılaşılan bir saldırı yöntemi olan XSS’ten bahsettik. Sizin düşünceleriniz neler? Düşüncelerinizi yorumlarda bizimle paylaşmayı unutmayın!

Web Güvenliği Web Tasarımı Veri Güvenliği


Argenova

Yenilikçi ve girişimci ruhumuz ile hareket ediyor, her işimizi değerlerimiz ışığında en doğru şekilde yapıyoruz.

Web Teknolojileri
  • Kurumsal Web Tasarım
  • E-Ticaret
  • Web Uygulamaları
  • Seo
  • Dijital Pazarlama
  • Sunucu ve Barındırma
  • Teknik Destek ve Bakım
Mobil Teknolojiler
  • IOS Uygulama Geliştirme
  • Android Uygulama Geliştirme
  • Bakım ve Teknik Destek
Self-Servis Teknolojiler
  • Ziyaretçi Yönetim Sistemi
  • Anket ve Eğitim Sistemleri
  • Toplantı Odası Bilgilendirme Ekranı
  • Multitouch Uygulamalar
  • Digital Signage
  • İnteraktif Stand Çözümleri
  • Özel Kiosk Çözümleri
  • Temizlik Kontrol Sistemi
Argenova
  • Hakkımızda
  • Blog
  • İletişim

Copyright © 2025. Argenova Teknoloji. All rights reserved.