使用 Node 保护 API

Securing API with Node

本文关键字:API 保护 Node 使用      更新时间:2023-09-26

我正在尝试构建我的第一个API,以供使用Ionic构建的移动应用程序使用。

在开始之前,我正在研究架构,但我无法确切了解如何保护我的 API 路由。

假设我有一个类似于 http://myapi/v1/get-items 的终结点,并且我的应用程序不需要对用户进行身份验证即可在移动应用中查看这些项目。

我应该如何保护该路由免受外部查询,例如使用 Postman?

我希望该路由无法访问,除非应用程序没有要求。

在谷歌上查找,我可以找到许多使用基本身份验证的解决方案,但所有这些都需要用户登录......如果我的应用没有用户登录怎么办?

我有点困惑,但我认为有一个解决方案,但我还不知道......

我希望你能帮助我理解它。

编辑

我的问题与以下内容完全不同:如何使用节点实现安全的 REST API.js

我正在寻找不需要用户身份验证的解决方案。

如果您不想通过 Passport 之类的东西使用用户身份验证,那么您可以在 Node API 中建立白名单。 express-ipfilter 是一个快速中间件模块,允许您根据请求 IP 过滤请求。

要求登录将是确保您的 API 保持私密的最干净、最安全的方法。但是,如果您希望在不需要登录的情况下将外部用户排除在您的服务之外,则需要"签署"您的请求。我的意思是做一些事情,比如使用服务器和客户端应用程序都知道的密钥加密客户端上的当前时间戳,将该加密字符串添加为标头,在服务器中接收该标头,对其进行解密并在返回响应之前检查它是否太旧时间戳。

不是很安全(如果有人可以看到代码,他们可以看到加密密钥),但这是一个障碍,它不需要登录。有关加密/解密的示例,请参阅此处