Duyuru

Yapay Zeka Modellerine Yönelik Prompt Injection Saldırıları Makalemiz Yayınlandı!

Blogu Görüntüle Blogu Görüntüle
PRIVIA

Siber Guvenlik Terimleri Sozlugu

DOM Tabanlı XSS Nedir?

DOM tabanlı XSS, zafiyetin sunucuda değil, tarayıcıda çalışan istemci tarafı betikte ortaya çıktığı bir XSS türüdür.

DOM Tabanlı XSS Nedir?
18 Ağustos 2020

DOM Tabanlı XSS Nedir?

DOM Tabanlı XSS Nedir?

DOM tabanlı betik çalıştırma, zafiyetin sunucuda değil doğrudan tarayıcıda çalışan istemci tarafı kodda ortaya çıktığı bir türdür. Klasik türlerde saldırgan girdisi sunucuya gider ve yanıtta geri döner; bu türde ise girdi hiç sunucuya ulaşmadan işlenebilir. Tarayıcıda çalışan betik, kullanıcı girdisini güvensiz biçimde alıp sayfaya eklediğinde zafiyet doğar. Sunucu yanıtı hiç değişmese bile saldırı gerçekleşebilir. Bu özellik, türü tespit ve savunma açısından farklı kılar.

Bu türün önemi, modern web uygulamalarının istemci tarafında giderek daha fazla iş yapmasıyla artmıştır. Zengin arayüzler, sayfayı sunucudan bağımsız biçimde tarayıcıda güncelleyen çok sayıda betik içerir. Bu betikler, kullanıcı girdisini ve adres bilgilerini sıkça işler. Her güvensiz işleme noktası, bu zafiyet için bir fırsat oluşturur. Bu nedenle istemci tarafı kodun karmaşıklaşması, türün önemini artırmıştır.

DOM Tabanlı XSS Nedir?

DOM tabanlı XSS, zafiyetin sunucuda değil, tarayıcıda çalışan istemci tarafı betiğin girdiyi güvensiz işlemesinden doğduğu bir betik çalıştırma türüdür.

Zafiyet, betiğin bir veri kaynağından aldığı girdiyi güvensiz bir hedefe yazmasıyla oluşur. Adres çubuğundaki bilgi, sayfa içindeki bir alan ya da başka bir kaynaktan gelen veri, işlenmeden sayfaya eklendiğinde risk doğar. Tarayıcı bu içeriği işlerken, saldırganın betiğini çalıştırabilir. Bu nedenle savunma, bu veri akışının güvenli hâle getirilmesine odaklanır. Kaynaktan hedefe giden yol boyunca girdi güvenli işlenmelidir.

Klasik XSS’ten Farkı

Temel fark, zafiyetin ortaya çıktığı yerdir. Klasik siteler arası betik çalıştırma türlerinde sunucu yanıtı saldırıyı taşır. Bu türde ise sunucu yanıtı tamamen zararsız olabilir; zafiyet yalnızca tarayıcıdaki kodda bulunur. Bu fark, sunucu tarafı savunmaların bu türü yakalayamayabileceği anlamına gelir. Bu nedenle bu tür, ayrı bir savunma yaklaşımı gerektirir.

İkinci fark, tespitin zorluğudur. Sunucu tarafında görünmediği için, sunucu günlüklerinde ya da yanıtlarında iz bırakmayabilir. Bu görünmezlik, hem otomatik araçların hem de manuel incelemenin işini zorlaştırır. Zafiyetin bulunması, istemci tarafı kodun ayrıntılı analizini gerektirir. Bu nedenle bu tür, özel test tekniklerini zorunlu kılar.

PRIVIA SECURITY

Kurumunuza özel siber güvenlik hizmetleri

Sızma testinden olay müdahalesine, uçtan uca çözümlerle yanınızdayız.

Fiyat Teklifi Al

Nasıl Önlenir?

En temel önlem, istemci tarafı betiklerde girdiyi güvenli biçimde işlemektir. Kullanıcıdan ya da adres bilgisinden gelen veri, sayfaya eklenmeden önce güvenli hâle getirilmelidir. Tehlikeli işlevler yerine, içeriği yalnızca metin olarak ekleyen güvenli yöntemler tercih edilmelidir. Bu tercih, girdinin kod olarak yorumlanmasını engeller. Güvenli yöntemlerin varsayılan hâle gelmesi, zafiyetin çoğu biçimini önler.

İkinci önlem, içerik güvenlik politikasının uygulanmasıdır. Bu mekanizma, betiklerin nereden çalışabileceğini sınırlayarak ek bir savunma sağlar. İçerik güvenlik politikası, bir enjeksiyon gerçekleşse bile etkisini azaltabilir. Böylece istemci tarafı bir hata olsa dahi ikinci katman devreye girer. Bu mekanizma, derinlemesine savunmanın önemli bir bileşenidir.

Üçüncü önlem, güvenli çerçeve ve kütüphanelerin kullanılmasıdır. Modern çerçeveler, içeriği güvenli biçimde işleyen yerleşik mekanizmalar sunar. Bu mekanizmalar doğru kullanıldığında, tehlikeli işlevlere başvurma ihtiyacı ortadan kalkar. Güvenli kod gözden geçirme bu güvenli kullanımın denetlenmesini sağlar. Böylece istemci tarafı kod da sistematik biçimde güvence altına alınır.

Tehlikeli Kaynaklar ve Hedefler

Bu zafiyeti anlamak için, hangi veri kaynaklarının riskli olduğunu bilmek gerekir. Adres çubuğundaki bilgi, sayfa parçası ve yönlendirme bilgileri, saldırganın etkileyebildiği tipik kaynaklardır. Bu kaynaklardan gelen veri, güvensiz bir hedefe yazıldığında zafiyet oluşur. Bu nedenle geliştirici, hangi verilerin dışarıdan etkilenebileceğini bilmelidir. Riskli kaynakların tanınması, savunmanın ilk adımıdır.

Hedef tarafında ise, içeriği kod olarak işleyen işlevler en tehlikelidir. Bir betiğin, girdiyi doğrudan sayfa yapısına ya da bir çalıştırma bağlamına yazması, en ağır sonuçları doğurur. Bu tür işlevler yerine, içeriği yalnızca metin olarak ekleyen güvenli alternatifler tercih edilmelidir. Tehlikeli hedeflerin tanınması ve kaçınılması, zafiyetin çoğu biçimini önler. Güvenli hedeflerin varsayılan hâle gelmesi, riski kökten azaltır.

Modern Uygulamalarda Artan Önem

İstemci tarafında yoğun iş yapan modern uygulamalar, bu zafiyet için daha geniş bir yüzey sunar. Sayfayı sunucudan bağımsız güncelleyen çerçeveler, çok sayıda veri işleme noktası içerir. Her nokta, girdinin güvensiz işlenmesi durumunda bir fırsat oluşturur. Bu nedenle bu tür uygulamalarda savunma, istemci tarafı koda özel önem vermelidir. İstemci tarafı karmaşıklığı arttıkça, bu türün riski de artmaktadır.

Bu artan önem, güvenlik testlerinin de istemci tarafına yönelmesini gerektirir. Yalnızca sunucu yanıtlarını inceleyen testler, bu türü kaçırabilir. Web uygulama sızma testi çalışmaları, istemci tarafı kod akışını da kapsamalıdır. Bu genişletilmiş kapsam, sunucuda görünmeyen zafiyetleri ortaya çıkarır. Böylece modern uygulamaların gerçek risk yüzeyi değerlendirilmiş olur.

Kalıcı Çözüm

Kalıcı çözüm, güvenli istemci tarafı geliştirme alışkanlıklarının yerleşmesidir. Geliştiriciler, tehlikeli işlevlerden kaçınmalı ve güvenli alternatifleri varsayılan olarak kullanmalıdır. Bu alışkanlık, çerçevelerin sunduğu güvenli mekanizmalarla desteklenmelidir. Böylece zafiyet, tekil düzeltmeler yerine sistematik biçimde önlenir. Güvenli varsayılanların benimsenmesi, insan hatasına bağlı riskleri azaltır.

Bu alışkanlığın kurumsal düzeyde yerleşmesi, eğitim ve gözden geçirmeyle sağlanır. İstemci tarafı güvenli kodlama kuralları belgelenmeli ve düzenli olarak denetlenmelidir. Bu denetim, güvenli varsayılanın atlatıldığı noktaları görünür kılar. Böylece güvenlik, sürekli bir uygulamaya dönüşür. Sistematik bir yaklaşım, zafiyetin zamanla tekrar ortaya çıkmasını önler.

Privia Security olarak istemci tarafı betik zafiyetlerinin tespitini ve giderilmesini düzenli zafiyet tarama kapsamında değerlendiriyoruz.

Bunlar İlginizi Çekebilir

MD5 ve SHA-1 Neden Güvensiz Nedir?

Siber Güvenlik Terimleri

6 Temmuz 2026

MD5 ve SHA-1 Neden Güvensiz Nedir?

Devamını Oku
Blue Team Nedir?

Siber Güvenlik Terimleri

16 Temmuz 2021

Blue Team Nedir?

Devamını Oku