首页 > 解决方案 > 保护 NodeJS RESTful API 和 React 客户端应用程序

问题描述

我有一个内置在 NodeJS 中的后端 RESTful API 和一个在 React JS(NextJS)中的前端应用程序,两者都托管在 AWS 上。客户端和服务器使用 JWT 令牌进行通信。我想确保客户端应用程序和服务器端应用程序都是高度安全的。

我做了什么:

我看过并使用过的答案:

  1. 如何保护客户端应用程序(反应)和 API 通信

  2. 根据:RESTful Authentication我在 HTTP 标头中使用令牌(例如 OAuth 2.0 + JWT),这是我为每个客户端请求发送的

  3. 使用刷新令牌:刷新令牌 Jsonwebtoken

    我关心的是什么,我需要一些帮助:

    1.既然JWT令牌是服务器验证客户端的方式,那么JWT通信是否安全?我可以采取其他步骤来提高 JWT 的安全性吗?

    2. 这个应用架构是否足够安全?

    3. 我还可以做些什么来提高它的安全性,因为我真的很担心并希望确保它非常安全。

    4. 我应该加密从客户端发送到服务器的 JSON 有效负载吗?因为这在 XHR 下的任何浏览器网络选项卡中都可见,所以我将用户名和密码作为登录的有效负载发送。

我最关心的是安全性,因为我已经在应用程序中集成了条带支付,而且我还存储了一些敏感数据。

任何建议将不胜感激,这是我第一次部署生产应用程序。

标签: node.jsapirestsecurity

解决方案


正如你所做的那样,应用程序必须非常安全......除了我想添加一些东西......

  1. 确保令牌已过期并使用刷新令牌颁发新令牌。存储在客户端的 jwt 可能容易受到中间人攻击。(为了获得更高的性能,请使用 redis 来存储刷新令牌......查看更多内容)
  2. 如果您使用的是 https,则该请求将仅对客户端的浏览器可见,而对网络中的任何嗅探器均不可见(检查此是否能够在诸如 wireshark 等嗅探工具中看到加密的有效负载......以验证使用的 https uve )。因此,没有必要再进行任何加密。这会降低 api 服务器的性能。

推荐阅读