İçeriğe geç

Dosya dahil etme enjeksiyonu (ARCH3139)

Anahtar typescript.security.file-inclusion-injection · Önem critical · Kategori security · CWE CWE-98

Dahil edilecek/yüklenecek modül yolunu kullanıcı girdisinden almak yerel veya uzak dosya dahil etmeye ve RCE’ye yol açar. Yolları sabit bir izin listesiyle eşleyin.

app.get("/plugin", (req, res) => {
const mod = require(`./plugins/${req.query.name}`);
res.json(mod.run());
});
const plugins: Record<string, () => unknown> = {
export: () => require("./plugins/export").run(),
report: () => require("./plugins/report").run(),
};
app.get("/plugin", (req, res) => {
const run = plugins[String(req.query.name)];
if (!run) return res.sendStatus(404);
res.json(run());
});

Dinamik require/import çağrısına kullanıcı girdisi geçirmeyin; izin verilen modülleri sabit bir eşlemeyle çözün.