NodeJS Express:限制路由访问

时间:2019-02-16 06:50:53

标签: javascript node.js ajax express routes

我正在创建一个 express 项目,并且有一些路由可以通过ajax向前端控制器提供数据,例如,它们以/get_data开头。

所以我的问题是如何保护这些路线?任何人都可以轻松访问它们。我试图做

app.use((req, res, next) => {
    if(!req.xhr) res.sendStatus(404);
    else next();
})

但这不会阻止其他站点的ajax调用来访问数据。那么如何使其更安全?如果不可能,我可以通过什么方式向前端提供数据?

1 个答案:

答案 0 :(得分:2)

一个选项是使用CORS(有一个express middleware)。因此,您可以将路由配置为仅接受来自特定来源的请求。但是原产地可以伪造。

如果那里有一些敏感数据,则可以考虑向应用程序添加身份验证(可能还包括授权)。有很多实现方法,例如流行的Passport.js库。

How to implement a secure REST API with node.js Ask Question的答案中也有一些细节。