İçeriğe geç

Şablon enjeksiyonu (ARCH4130)

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

Şablon dizesinin kendisinin güvenilmeyen girdiden oluşturulması, saldırganların şablon motorunun ifadelerini değerlendirerek sunucuda kod çalıştırmasına (SSTI/RCE) olanak tanır.

String tpl = "Hello " + request.getParameter("name");
Template t = new Template("t", new StringReader(tpl), cfg);
t.process(model, out);
Template t = cfg.getTemplate("hello.ftl");
Map<String, Object> model = Map.of("name", request.getParameter("name"));
t.process(model, out);

Sabit, önceden tanımlı şablonlar kullanın ve kullanıcı girdisini şablon kaynağına değil yalnızca veri modeline aktarın.