Ş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.
Hatalı
Bölüm başlığı “Hatalı”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});Düzeltme
Bölüm başlığı “Düzeltme”Şablonları sabit tutun; kullanıcı girdisini şablon kaynağına değil, yalnızca veri olarak geçirin.