Tanım - XSSI - Cross Site Script Inclusion
Markanız için 300X300 alan.
XSSI - Cross Site Script Inclusion; A sitesinin B sitesiyle yetki paylaşımı gerçekleştirdiğini bulan saldırganın, B sitesindeki kaynağı saldırgan siteye ekleyerek yetki çaldığı saldırıyı tanımlar.
XSSI - Cross Site Script Inclusion saldırısının iyi anlaşılabilmesi için Aşılama Teorisi ve XSS - Cross Site Scripting saldırısı iyi anlaşılmalı.
Bir sitedeki bir sayfaya başka bir sitenin içeriği eklenirse her sayfa, her içerik tarayıcı tarafında yalnızca kendi sitesinin yetkileriyle çalıştırılır. Ancak bu durum görseller ve betik (.js
) dosyaları için geçerli değildir. Eğer B sitesi, A sitesini kullanan kullanıcının A sitesinde oturum açıp açmadığına göre yanıt döndürüyorsa tarayıcılar Aynı Köken İlkesi ile bu yetki paylaşımını (güvenlik gerekçesiyle) engeller. İşte tam da burada betik dosyaları yardımımıza koşar ve betik dosyaları aracılığıyla B sitesiyle yetki paylaşılır. XSSI - Cross Site Script Inclusion saldırısı bunu gören saldırganın B sitesini sömürmesiyle gerçekleşir.
B sitesindeki kodu kendi sitesine ekleyen saldırgan site, A sitesine giriş yapmış birisi tarafından ziyaret edilirse XSSI - Cross Site Script Inclusion saldırısı başarıyla gerçekleşir. Saldırgan siteyi ziyaret ettiğinizde B sitesindeki kodlar saldırgan site üzerinde çalışacak ve dönen yanıtta bulunan A sitesindeki yetkiniz saldırgan site tarafından kullanılacaktır. Saldırı; B sitesindeki kodun saldırgan siteye eklenmesi (Inclusion) yoluyla gerçekleştiğinden ötürü bu saldırıya XSSI - Cross Site Script Inclusion yani Ekli XSS denir.
Kullanımı - XSSI - Cross Site Script Inclusion
XSSI - Cross Site Script Inclusion saldırısının farklı kullanımları olmakla birlikte bu belgede anlatılan, JSOP kullanıldığında gerçekleşen saldırıdır. JSONP; JSON with Padding demektir ve B sitesindeki kodun A sitesine eklenmesi şöyle gerçekleşir:
<script src="örnek_jsonp.php">
Dikkat ettiğiniz üzere <script>
etiketi ile eklenen belge .js
ile değil .php
ile bitiyor. Çerezler örnek_jsonp.php ile paylaşılıyor. Bunu gören saldırgan aynı kodu kendi sitesine eklediğinde A sitesindeki oturumunuz açıkken saldırgan siteye yaptığınız ziyaretlerde oturum bilgileri başka olmak üzere kişisel, gizli kalması gereken bilgilerinizi kaptırırsınız.
Engellenmesi - XSSI - Cross Site Script Inclusion
XSSI - Cross Site Script Inclusion saldırısı, çerezlere SameSite
ikilisi eklenerek engellenebilir. SameSite
adı iki değerden birini alır : Strict
ya da Lax
.
/* Olağan Çerez */
Set-Cookie: oturum=abc123; path=/
/* Güvenliği Artırılmış çerez */
Set-Cookie: sess=abc123; path=/; SameSite=Lax
Strict
ve Lax
bayraklarının ilk tamgaları büyük yazılmalı.
Strict
bayrağı kullanıldığında açık olan oturumunuz bağlantıya tıklayarak açtığınız o sitenin anasayfasında bile geçerli olmaz. Güvenlik en üst seviyededir.
Lax
kullanımında ise çerez yalnızca aynı site (aynı köken) (SameSite) ile paylaşılır. bk. Aynı Köken İlkesi
XSSI - Cross Site Script Inclusion saldırısının engellenebilmesi için yukarıdaki kullanım yalnızca bir örnektir ve çerezlerin güvenli olabilmesi için SameSite
bayrağının yanı sıra HTPPOnly
ve Secure
bayraklarının da etkinleştirilmesi gerekir. bk. Güvenli Çerez