使用 Node 保护 API
Securing API with Node
我正在尝试构建我的第一个API,以供使用Ionic构建的移动应用程序使用。
在开始之前,我正在研究架构,但我无法确切了解如何保护我的 API 路由。
假设我有一个类似于 http://myapi/v1/get-items
的终结点,并且我的应用程序不需要对用户进行身份验证即可在移动应用中查看这些项目。
我应该如何保护该路由免受外部查询,例如使用 Postman?
我希望该路由无法访问,除非应用程序没有要求。
在谷歌上查找,我可以找到许多使用基本身份验证的解决方案,但所有这些都需要用户登录......如果我的应用没有用户登录怎么办?
我有点困惑,但我认为有一个解决方案,但我还不知道......
我希望你能帮助我理解它。
编辑:
我的问题与以下内容完全不同:如何使用节点实现安全的 REST API.js
我正在寻找不需要用户身份验证的解决方案。
如果您不想通过 Passport 之类的东西使用用户身份验证,那么您可以在 Node API 中建立白名单。 express-ipfilter 是一个快速中间件模块,允许您根据请求 IP 过滤请求。
要求登录将是确保您的 API 保持私密的最干净、最安全的方法。但是,如果您希望在不需要登录的情况下将外部用户排除在您的服务之外,则需要"签署"您的请求。我的意思是做一些事情,比如使用服务器和客户端应用程序都知道的密钥加密客户端上的当前时间戳,将该加密字符串添加为标头,在服务器中接收该标头,对其进行解密并在返回响应之前检查它是否太旧时间戳。
它不是很安全(如果有人可以看到代码,他们可以看到加密密钥),但这是一个障碍,它不需要登录。有关加密/解密的示例,请参阅此处
- 如何在Ionic/Codova应用程序中保护我的Google Maps Javascript V3 API密钥
- 使用基于令牌的身份验证保护Sails.js中的API路由
- 在 Javascript 中保护 API 密钥
- 使用 Node 保护 API
- 在 javascript 中保护 Azure API rest 调用
- 如何在 Nodejs 中保护 RestFul API
- 保护仅限 JavaScript 的客户端以访问远程 API
- 如何使用跨域AJAX调用保护ASP.NET Web API的安全
- 如何保护JavaScript应用程序'的API调用
- 如何在html应用程序中保护解析的Rest API密钥
- 保护API令牌,使其成为我的index.js中的一个var
- 保护我的私人API
- 保护用户注册API
- 保护我的Node.js应用程序'的REST API
- 在Chrome扩展中保护网站API密钥
- 使用API Key + Secret On Express保护我的RESTful API
- 使用jwt保护api密钥,无需身份验证
- 如何保护浏览器使用的RESTful API免受CSRF攻击
- 使用passport-local保护API
- 使用自定义API保护客户端上的API机密