Node.js Express.js |从views / static文件夹自动渲染handelbar模板

时间:2013-12-28 08:31:15

标签: javascript node.js express routes

我有以下代码可以自动从views / static文件夹加载我的handelbar模板,而无需为每个页面手动设置路由。

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);
        }
    });
});

它工作正常,但我担心这可能会使我的应用程序暴露于安全问题。任何建议我如何能做得更好。我正在使用Express。非常感谢你的帮助。

1 个答案:

答案 0 :(得分:1)

我认为这很安全。

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

可能发生的问题是当static目录包含您不想公开的文件时:/secret.js的请求至少会尝试呈现名为static/secret.js的文件。