gpt4 book ai didi

javascript - 如何处理路径遍历?

转载 作者:行者123 更新时间:2023-12-05 04:53:36 33 4
gpt4 key购买 nike

我正在尝试了解如何(以安全的方式)处理路径遍历。

例如,应用程序通过 JSON 格式的 REST API 从客户端接收文件名,在不可访问的(外部)目录中查找它并检索包含该文件的响应:

app.get('/', (req, res) => {
const fileName = req.body.fileName;
// some code...
fs.stat(`./nonAccessibleDir/${fileName}`, async function(err, stat) {
// some code...
});
// some code...
}

上述方法的问题在于,客户端可以在文件名请求中发送类似“../”的内容,并且它会毫无问题地“吃掉”它。请问如何应对这种情况,我应该如何修复这个漏洞?

更新:抱歉,但我忘了说我知道我应该检查收到的输入,但是如果我需要传递“/”和“.”怎么办?在输入?另外,如果我不需要这些字符,是否我需要检查以消除路径遍历漏洞?

最佳答案

一种简单的方法是通过检测任何 ../ 段并返回错误(如果存在)的正则表达式来验证文件名。

if (fileName.match(/\.\.\//g) !== null) {
// return an api error
}

你可以有一个非常严格的验证规则来阻止 fileName 中的任何正斜杠,使得它只能直接指向你想要的目录中的文件。

关于javascript - 如何处理路径遍历?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65980534/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com