【问题标题】:Block access to everything except one folder [duplicate]阻止访问除一个文件夹之外的所有内容[重复]
【发布时间】:2014-01-16 14:36:45
【问题描述】:

在 Node.js 中,我制作了简单的路由器,因此服务器会打开用户在 URL 中键入的所有内容。 所以用户输入:http://example.com/directory1/test.html,它就会被打开。

但我不想允许打开某些目录。我想允许用户打开仅位于名为“userFiles”的目录中的文件。

我该怎么做?

【问题讨论】:

标签: node.js


【解决方案1】:

假设我们使用express.js,我经常在我的代码中这样做:

var app = express();

app.use('/whitelist', express.static('/path/to/whitelistfolder'));

或者写一个过滤中间件:

app.use(function (req, res, next) {
    if(checkFunction(req.url)) {
        next();
    } else {
        res.send(404, "Not found");
    }
})

【讨论】:

  • 谁说快递?在没有快递的情况下做到这一点并不是特别难。请考虑添加一个不需要 express 的示例。此外,这种方法(列入黑名单而不是列入白名单)是有问题的。
  • 我还在等待另一个答案:)
  • 如果没有人在接下来的一两天内发布一个像样的帖子,我会的。如果您想要参考并自己尝试,我在答案的评论中发布了快递(真正连接)的方式。
  • 如果有可能(并且易于介绍),我想不加快递地使用它。 @BenjaminGruenbaum 我在等你的回答;)
  • 很好,给我一天半的时间:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-05
  • 2016-02-05
相关资源
最近更新 更多