Siteler arası betik çalıştırma (ARCH3101)
Anahtar typescript.security.xss · Önem error · Kategori security · CWE CWE-79
Güvenilmeyen veriyi kaçışlama yapmadan HTML çıktısına (ham HTML havuzları veya innerHTML gibi) yazmak, saldırganların betik enjekte ederek siteler arası betik çalıştırma (XSS) yapmasına olanak tanır.
Hatalı
Bölüm başlığı “Hatalı”app.get("/hello", (req, res) => { // name="<script>steal()</script>" res.send(`<h1>Hello ${req.query.name}</h1>`);});import escapeHtml from "escape-html";
app.get("/hello", (req, res) => { res.send(`<h1>Hello ${escapeHtml(String(req.query.name))}</h1>`);});Düzeltme
Bölüm başlığı “Düzeltme”Kullanıcı verisini HTML’e yazmadan önce kaçışlayın; otomatik kaçışlama yapan şablon motorları kullanın.