İçeriğe geç

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.

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>`);
});

Kullanıcı verisini HTML’e yazmadan önce kaçışlayın; otomatik kaçışlama yapan şablon motorları kullanın.