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.
Hatalı
Bölüm başlığı “Hatalı”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());});Düzeltme
Bölüm başlığı “Düzeltme”Dinamik require/import çağrısına kullanıcı girdisi geçirmeyin; izin verilen modülleri sabit bir eşlemeyle çözün.