Express.js漏洞代码 下面的例子是一个Express.js路由,它以不安全的方式从目录中提供文件: app.use("/", function (req, res) { const path = req.path; const filename = __dirname + "/public" + path; fs.readFile(filename, function (err, data) { if (err) { res.writeHead(500); return res.end(err.toString()); } res.writeHead(200); res.end(data); }); }); 攻击者可以请求以下URL来获取文件系统中的任何位置: http://example.com/../../../../../etc/passwd 如何防护 验证用户提交的文件名元数据没有被系统或框架文件系统直接使用,并且URL API用于防止路径遍历。 Express.js提供了使用一种安全的方式提供静态文件的功能:express.static中间件. app.use(express.static("public"));