【问题标题】:Hiding the JSON payload from /api and auth/ routes从 /api 和 auth/ 路由隐藏 JSON 有效负载
【发布时间】:2020-08-23 02:46:45
【问题描述】:

当用户在 url 中输入 api 路由时,有没有办法保护它?请看我的屏幕截图。我知道有一种方法可以使用中间件在后端对用户进行身份验证,但似乎如果数据可以公开查看,JSON 有效负载也可以公开查看。我还是新手,所以如果这个问题已经被问过,请原谅我。我使用 Node.js、React、Express 和 Sequelize。

【问题讨论】:

  • 你能详细说明你的问题吗?我假设您不希望您的 /api/users 路线可供公众访问。对吗?
  • 嗨,Sravanth Chebrolu,是的,没错!我知道有一种方法可以对用户进行身份验证并授予他/她对某些信息的访问权限。但是对于公众可以访问的公共数据,我也不希望用户能够通过在 url 中输入 api/something 来查看 JSON 有效负载。

标签: node.js reactjs api express security


【解决方案1】:

我假设您不希望公众可以访问您的 /api/users 路由,我认为此解决方案应该可行,尽管可能有更好的解决方案。

您可以尝试根据用户的role 保护特定路由。我建议你在你的用户模式中添加一个user_role 字段,并创建一个中间件函数,只允许具有特定角色的登录用户访问路由,如下面的伪代码所示:

function (req, res, next) {
   // Check if user is logged in and is assigned the role you want to allow.
   if(user is logged in) return next();
   else throw error; 
}

【讨论】:

  • 谢谢!是的,我能够在后端保护我的 API 路由取决于用户授权。我和我的导师澄清了这一点,所以基本上如果有效负载是公共的(每个人都可以访问),那么如果在 url 中输入 api/publicPayloads,那么当有效负载将在浏览器中可见时。这其实不是我们能做的。当涉及到用户负载等敏感信息时,API 中间件非常有效! :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-31
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 2018-04-21
  • 2019-07-26
  • 2021-12-02
相关资源
最近更新 更多