CodeBlanks Logo Icon CodeBlanks

Özet - Güvenlik

JavaScript kursu · Uzman · Ders 30/63

textContent, escape fonksiyonu ve CSP başlıklarıyla güvenli bir yorum render fonksiyonu yazarsın.

Özet - Güvenlik

Bu grupta XSS saldırılarını ve savunmalarını öğrendin. Üç ana konu: güvenli DOM güncelleme (textContent), dinamik erişimde eval'den kaçınma ve giriş verisini escape etme.

Ek olarak Content-Security-Policy ile tarayıcıya hangi kaynakların güvenli olduğunu söyleyebilir, nonce ile seçici izin verebilirsin. Bu katmanlar birlikte derin savunma sağlar.

Uygulama Yorumu güvenli render et

renderComment fonksiyonu yaz, parametre comment. const el = document.createElement('div') ile öğe oluştur. el.textContent = comment ile yorumu ata. return el ile öğeyi döndür.

Örnek çözümü göster
Önce fonksiyonu tanımla, sonra div öğesi oluştur, textContent'e comment ata, son olarak el'i döndür.
Örnek çözüm:
function renderComment(comment) {
  const el = document.createElement('div');
  el.textContent = comment;
  return el;
}

Uygulama Yorumu escape et ve güvenli yaz

showComment fonksiyonu yaz, parametre text. const safe = escapeHtml(text) ile metni escape et. const el = document.createElement('div') ile öğe oluştur. el.textContent = safe ata. document.body.appendChild(el) ile sayfaya ekle.

Örnek çözümü göster
Önce escape et, sonra div oluştur, sonra textContent'e ata, son olarak body'e ekle.
Örnek çözüm:
function showComment(text) {
  const safe = escapeHtml(text);
  const el = document.createElement('div');
  el.textContent = safe;
  document.body.appendChild(el);
}

Kendini test et

  1. Güvenlik kavramlarını eşleştir

    textContent
    güvenli metin
    innerHTML
    riskli HTML
    eval
    kod çalıştırır
    nonce
    tek kullanımlık
  2. Hangisi XSS'e karşı en etkili savunmadır?

    • Kullanıcı girdisini escape edip textContent ile yazmak
    • Girdiyi doğrudan innerHTML'e yazmak
    • Girdiyi eval ile çalıştırmak
    • Girdiyi localStorage'a kaydetmek
    Cevabı göster

    Kullanıcı girdisini escape edip textContent ile yazmak — Doğru! Escape ve textContent birlikte XSS'i kökten önler.

Uzman bölümündeki tüm dersler