İçeriğe geç

Şablon enjeksiyonu (ARCH3130)

Anahtar typescript.security.template-injection · Önem error · Kategori security · CWE CWE-1336

Şablon dizesinin kendisini kullanıcı girdisinden oluşturmak, saldırganların şablon motorunun ifadelerini enjekte ederek sunucu taraflı şablon enjeksiyonu (SSTI) ve uzaktan kod yürütme yapmasına olanak tanır.

import Handlebars from "handlebars";
app.get("/greet", (req, res) => {
// Şablonun kendisi kullanıcı girdisinden oluşturuldu
const tpl = Handlebars.compile(`Hello ${req.query.name}`);
res.send(tpl({}));
});
import Handlebars from "handlebars";
const tpl = Handlebars.compile("Hello {{name}}"); // sabit şablon
app.get("/greet", (req, res) => {
res.send(tpl({ name: req.query.name })); // girdi yalnızca veri
});

Şablonları sabit tutun; kullanıcı girdisini şablon kaynağına değil, yalnızca veri olarak geçirin.