
İçindekiler
Siteler arası komut dosyası çalıştırma yani diğer adıyla XSS, bir saldırganın güvenilen web sitelerinden içeriğe kötü amaçlı komut dosyası gibi verileri enjekte ettiği bir tür enjeksiyon güvenlik saldırısıdır. Siteler arası komut dosyası çalıştırma saldırıları, güvenilmeyen bir kaynağın bir web uygulamasına kendi kodunu enjekte etmesine izin verildiğinde ve bu kötü niyetli kod, kurbanın tarayıcısına gönderilen dinamik içeriğe dahil edildiğinde gerçekleşir.
Kötü amaçlı komut dosyaları genellikle kurbanın tarayıcısı tarafından yürütülen JavaScript kodu bitleri biçiminde sunulur, ancak açıklar Java, Ajax, Flash ve HTML dahil olmak üzere diğer birçok dilde kötü amaçlı yürütülebilir kod içerebilir. Siteler arası komut dosyası çalıştırma saldırıları çok ciddi olabilir, ancak bu tür saldırıları mümkün kılan güvenlik açıklarını azaltmak nispeten kolaydır.
Siteler arası komut dosyası çalıştırma, bir saldırganın başka bir kullanıcının tarayıcısında kötü amaçlı komut dosyaları yürütmesine olanak tanır. Ancak saldırgan kurbana doğrudan saldırmaz; bunun yerine saldırgan, kurbanın ziyaret ettiği bir web sitesindeki bir güvenlik açığından yararlanır ve web sitesinin saldırgan için kötü amaçlı komut dosyası göndermesini sağlar.
XSS Saldırısı Nasıl Çalışır
Tüm enjeksiyon saldırıları gibi, XSS de tarayıcıların geçerli işaretlemeyi saldırgan tarafından kontrol edilen işaretlemeden ayıramaması gerçeğinden yararlanır. sadece aldıkları biçimlendirme metnini çalıştırırlar. Saldırı, bir web sitesinden kaynaklanan komut dosyalarının farklı bir web sitesindeki komut dosyalarıyla etkileşime girmesini önlemeyi amaçlayan aynı kaynak politikası’nı atlatır.
Aynı kaynak politikası, bir web sayfasındaki tüm içeriğin aynı kaynaktan gelmesini gerektirir. Aynı kaynak ilkesi uygulanmadığında, bir saldırgan bir komut dosyası enjekte edebilir ve web sayfasını kendi amaçlarına uygun şekilde değiştirebilir. Örneğin, saldırganın kimliği doğrulanmış bir kullanıcının kimliğine bürünmesine veya kötü niyetli giriş yapmasına izin verecek verileri ayıklamak için tarayıcının çalıştıracağı koddur.
XSS, ciddi sorunlara neden olmak için çeşitli şekillerde kullanılabilir. XSS kullanımı, bir saldırganın oturum tanımlama bilgilerini çalmasına ve bu saldırganın kullanıcı gibi davranmasına olanak tanır. Ancak bu sadece kurabiye çalmak değildir; saldırganlar XSS’yi kötü amaçlı yazılım yaymak, web sitelerini tahrif etmek, sosyal ağlarda hasara yol açmak, kimlik bilgileri için kimlik avı yapmak ve sosyal mühendislik teknikleriyle birlikte daha zararlı saldırılar gerçekleştirmek için kullanabilir.
Kullanıcının Girebileceği Kutucukları Azaltmak
XSS güvenlik açıklarının uygulamalarda görünmesini önlemenin bir yoludur. Bu, bir uygulamanın aldığı verileri almak ve kullanıcı için oluşturmadan önce güvenliğini sağlamak anlamına gelir. Kullanıcı girişinden çıkış, bir web sayfasının aldığı verilerdeki anahtar karakterlerin çalıştırılabilir kod olarak yorumlanmasını engeller. Bu, tarayıcının çalıştırılabilir kodun başlangıcını veya sonunu işaret etmek için kullanılan karakterleri yorumlamasını engellemek anlamına gelir ve bunları “çıkış karakterli” olarak çevirir. Örneğin, alıntı karakterleri, parantezler, köşeli parantezler ve diğer bazı noktalama işaretleri bazen yürütülebilir kodu ayarlamak için kullanılır; Bu karakterlerden “kaçmak”, onları görüntülenmeyecek tek karakterlerden tarayıcının karakterlerin yazdırılabilir sürümleri olarak yorumladığı dizelere dönüştürmek anlamına gelir.
XSS Kodlarını Engellemek
Siteler arası komut dosyası saldırılarını önlemenin başka bir yoludur ve özellikle HTML biçimlendirmesine izin veren sitelerde yararlıdır. Bu önleme yöntemi, verileri potansiyel olarak çalıştırılabilir karakterlerden temizleyerek, kabul edilemez kullanıcı girişini kabul edilebilir bir biçime dönüştürür ve alınan verilerin yürütülebilir kod olarak yorumlanamamasını sağlar.
Kullanıcının Girebileceği Kutucuklara Doğrulama Koymak
Bir uygulamanın doğru verileri oluşturduğundan ve kötü niyetli verilerin bir web sitesine, veritabanına ve kullanıcılara zarar vermesini önlemesini sağlar. Girişin doğrulanması, formlarda XSS’nin engellenmesine yardımcı olur çünkü bir kullanıcının isteği reddederek web sayfası veri giriş alanlarına özel karakterler eklemesini durdurur. Girdi doğrulama, bir saldırganın böyle bir XSS güvenlik açığını keşfetmesi durumunda zararlı etkilerin olasılığını azaltmaya yardımcı olur.