NodeJS express:限制对路由的访问
我正在创建一个快速项目,我有一些路由通过ajax向前端控制器提供数据,例如它们以/get_data
开头。
所以我的问题是如何保护这些路线?任何人都可以轻松访问它们我试着这样做
app.use((req, res, next) => {
if(!req.xhr) res.sendStatus(404);
else next();
})
但这并不妨碍来自其他站点的Ajax调用来访问数据。那么如何让它更安全?如果不可能,我可以通过哪种方式向前端提供数据?
回答如下:一种选择是使用CORS(有一个express middleware)。因此,您可以将路由配置为仅接受来自特定源的请求。但起源可以伪造。
如果您有一些敏感数据,您可以考虑向您的应用程序添加身份验证(和可能的授权)。有很多方法可以实现,例如流行的Passport.js库。
在How to implement a secure REST API with node.js Ask Question的答案中也有一些细节。
NodeJS express:限制对路由的访问
我正在创建一个快速项目,我有一些路由通过ajax向前端控制器提供数据,例如它们以/get_data
开头。
所以我的问题是如何保护这些路线?任何人都可以轻松访问它们我试着这样做
app.use((req, res, next) => {
if(!req.xhr) res.sendStatus(404);
else next();
})
但这并不妨碍来自其他站点的Ajax调用来访问数据。那么如何让它更安全?如果不可能,我可以通过哪种方式向前端提供数据?
回答如下:一种选择是使用CORS(有一个express middleware)。因此,您可以将路由配置为仅接受来自特定源的请求。但起源可以伪造。
如果您有一些敏感数据,您可以考虑向您的应用程序添加身份验证(和可能的授权)。有很多方法可以实现,例如流行的Passport.js库。
在How to implement a secure REST API with node.js Ask Question的答案中也有一些细节。