【问题标题】:Node.js Express.js | Automatically render handelbar templates from views/static folderNode.js Express.js |从视图/静态文件夹中自动渲染把手模板
【发布时间】:2013-12-28 08:31:15
【问题描述】:

我有以下代码可以从视图/静态文件夹中自动加载我的手把模板,而无需为每个页面手动设置路线。

app.get("/:template", function(req,res){
    var template = req.params.template; // Is this safe?
    res.render("static/" + template, function(err, html) {
        if (err) {
            res.send(404, 'Sorry cant find that!');
        } else {
            res.send(html);
        }
    });
});

它工作正常,但我担心这可能会使我的应用程序面临安全问题。有什么建议我可以做得更好。我正在使用快递。非常感谢您的帮助。

【问题讨论】:

    标签: javascript node.js express routes


    【解决方案1】:

    我认为这很安全。

    通常,您必须担心传递的路径包含 ../ 之类的内容(返回目录级别),但这些内容与您的路径不匹配。此外,您声明的路由将在 / 处停止匹配,因此像 /foo/../bar 这样的请求也不会匹配。

    可能出现的问题是static 目录包含您不想公开的文件:/secret.js 的请求至少会尝试渲染一个名为 static/secret.js 的文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-21
      • 1970-01-01
      • 1970-01-01
      • 2016-11-11
      • 2013-05-13
      • 1970-01-01
      • 2018-10-14
      相关资源
      最近更新 更多