XSS nedir?
Cross-site scripting (XSS) saldırılarının ne olduğunu ve türlerini öğrenirsin.
XSS nedir?
XSS (cross-site scripting), saldırganın sayfaya kendi JavaScript kodunu enjekte ettiği bir saldırıdır. Kullanıcının oturum çerezini çalmak, sayfayı değiştirmek veya kimlik avı yapmak için kullanılır.
Üç yaygın türü vardır: stored (sunucuda saklanır), reflected (URL ile yansır) ve DOM (istemci tarafında işlenir). Hepsi güvenilmeyen verinin doğru kodlanmadan sayfaya yazılmasından doğar.
Enjeksiyon nasıl olur?
Bir yorum kutusuna <script>alert(1)</script> yazan saldırgan, bu veriyi ham HTML ile ekrana basan herkesi etkiler. Sunucu veriyi olduğu gibi saklarsa stored XSS oluşur.
URL parametresini doğrudan sayfaya yazan bir kod parçası reflected XSS yaratır. İstemci tarafında location.hash gibi veriyi işleyen kod ise DOM XSS üretir. Savunma her zaman çıktı kodlamadır.
Uygulama Güvenli karşılama yaz
renderGreeting adında bir fonksiyon yaz. Parametre name. box değişkenini document.getElementById('box') ile al ve box.textContent'e 'Merhaba ' + name ata. Böylece XSS riskini önlemiş olursun.
Örnek çözümü göster
Önce fonksiyonu tanımla, sonra box değişkenini al, son olarak textContent'e değeri ata.
Örnek çözüm:
function renderGreeting(name) {
const box = document.getElementById('box');
box.textContent = 'Merhaba ' + name;
}
Kendini test et
-
Aşağıdakilerden hangisi bir XSS türüdür?
- Buffered
- Cached
- Stored
- Deferred
Cevabı göster
Stored — Doğru! Stored XSS, enjekte edilen kodun sunucuda saklandığı türdür.
-
Zararlı etiketi escape fonksiyonuna ver
const payload = '____';Cevabı göster
const payload = '<script>'; -
XSS türlerini eşleştir
- Stored
- sunucuda saklanır
- Reflected
- URL ile yansır
- DOM
- istemcide işlenir
- XSS
- enjeksiyon saldırısı