【问题标题】:NodeJS express: limiting access to routeNodeJS express:限制对路由的访问
【发布时间】:2019-07-10 06:20:00
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: javascript node.js ajax express routes


    【解决方案1】:

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

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

    How to implement a secure REST API with node.js 的回复中也有一些细节。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-15
      • 2017-10-03
      • 2011-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-08
      • 2015-09-14
      相关资源
      最近更新 更多