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'));
页面更新:2024-05-14
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号