首页 > 解决方案 > Web 浏览器可以使用 URL 的位置向上导航目录吗?

问题描述

我现在在同一个框架上运行几个 node.js 服务器。在框架的代码行的某个地方,我有这个小片段:

//...
if (subdomain.staticFolder) {
    let relativePath = subdomain.staticFolder + path.sep + path.normalize(url);
    if (fs.existsSync(relativePath)) {
        let fileStats = fs.statSync(relativePath);
        if (fileStats.isFile()) {
//...

此代码段位于管理请求流量的处理程序内。简而言之,它所做的是static/在域的文件夹中查看是否有任何文件与请求匹配。

我担心的是恶意用户可能会出现并尝试访问 Web 服务器的文件,利用这种静态文件查找方法。例如:

https://www.example.com/../index.js

https://www.example.com/../serverStructure.json

这可能吗,还是我只是担心?而且,如果可能的话,有哪些潜在的解决方案?将静态文件移动到 S3 存储桶是否可行?即使不可能,这仍然是不好的后端做法吗?

标签: node.jsweburlserver

解决方案


推荐阅读