【问题标题】:How to secure and protect Nodejs api [closed]如何保护和保护 Nodejs api [关闭]
【发布时间】:2019-08-30 08:25:12
【问题描述】:

我为我的 react native 应用程序创建了一些 Nodejs api。当用户登录节点发送 jwt 作为响应并做出反应时,将 jwt 令牌保存在本地存储中。现在我想知道如何保护我的节点 js api,以便只有使用我的应用程序的用户才能通过应用程序而不是外部人员访问我的 api。我读到的一种解决方案是,我将我的令牌从反应本机应用程序发送到节点并验证该令牌。但是让我感到困惑的是,有些人复制任何帐户令牌并通过粘贴来发送该令牌,这样任何人都可以在外部使用和点击我的 api。我想要一些指导如何保护我的 api。

【问题讨论】:

标签: node.js api react-native


【解决方案1】:

如果您的 API 暴露在互联网上,您无法阻止其他人访问它。但是,您可以实施 IP 白名单、OAuth、会话令牌或其他一些验证请求的方法。

如果复制身份验证令牌有问题,请在每次请求时更改它们,类似于CSRF tokens

【讨论】:

  • 正如您所说的“随每个请求更改它们”,但是我如何从客户端更改我的 jwt 令牌。改变的唯一方法是使用 jwt.sign() 方法,通过使用这种方法,我必须使用我的密钥,如果我在客户端使用它,任何人都可以访问我的密钥。我想使用这个解决方案来更改我的令牌并将当前时间添加到该令牌,但问题是我不知道每次我从客户端请求时如何更改它,即从我的反应本机代码
  • 在服务器端更改令牌并将新令牌与请求响应一起发送给客户端。
  • 在我发送它作为响应时,任何用户都可以复制该令牌有什么区别。我的一位朋友建议我可以从客户端发送当前时间并在服务器端检查 1 分钟的持续时间,以允许每次点击时访问或不允许访问。但问题是我如何从客户端发送时间作为散列字符串,这样没有人可以了解该字符串。
  • 通过默默无闻的安全性不起作用users.softlab.ntua.gr/~taver/security/secur3.html
猜你喜欢
  • 2012-07-31
  • 1970-01-01
  • 2011-09-25
  • 2022-01-01
  • 2013-12-20
  • 1970-01-01
  • 2012-08-29
相关资源
最近更新 更多