NodeJS express:限制对路由的访问
Posted
技术标签:
【中文标题】NodeJS express:限制对路由的访问【英文标题】:NodeJS express: limiting access to route 【发布时间】:2019-07-10 06:20:00 【问题描述】:我正在创建一个 express 项目,并且我有一些路由可以通过 ajax 向前端控制器提供数据,例如它们以 /get_data
开头。
所以我的问题是如何保护这些路线?任何人都可以轻松访问它们。我试着做
app.use((req, res, next) =>
if(!req.xhr) res.sendStatus(404);
else next();
)
但这并不能阻止来自其他站点的 ajax 调用来访问数据。那么如何让它更安全呢?如果不可能,我可以通过什么方式向前端提供数据?
【问题讨论】:
【参考方案1】:一个选项是使用 CORS(有一个 express middleware)。因此,您可以将路由配置为仅接受来自特定来源的请求。但产地是可以伪造的。
如果您有一些敏感数据,您可以考虑在您的应用程序中添加身份验证(可能还有授权)。有很多实现方式,例如流行的Passport.js 库。
How to implement a secure REST API with node.js 的回复中也有一些细节。
【讨论】:
以上是关于NodeJS express:限制对路由的访问的主要内容,如果未能解决你的问题,请参考以下文章
Nodejs express 获取url参数,post参数的三种方式