【发布时间】:2015-08-23 05:38:20
【问题描述】:
我购买了一个可以在移动应用程序中使用的 API。 API 包含预期的密钥和用户名。 在应用内,需要在付款确认时调用此 API。
我发现使用 Fiddler 之类的工具,可以看到应用程序发出的请求。如果是这种情况,只需几秒钟即可完全访问 API 签名。
如果有人可以帮助/添加这个问题,那将是非常有帮助的。
我的想法:
- 使用服务器进行此 API 调用,而不是直接调用它 来自应用程序。
- 如果使用服务器,问题仍然存在,因为对服务器的 API 调用(最终调用购买的 API)也可能被中断/访问
- 如何保护应用程序对服务器的调用?
技术:Angular JS、Node JS、Ionic 框架
【问题讨论】:
-
这是一个相当广泛的问题,但您的想法#1 是正确的:如果您从 不可信 客户端发出请求(Angular 等前端框架属于此类),您不能发出会损害您的凭据的 API 请求。一种解决方案是在您的服务器上使用像 OAuth 这样的方案来向客户端授予访问令牌,当然,您的所有私有 API 请求都只来自您的服务器。
-
@NateBarbettini 感谢您的快速回复。我将检查 OAuth。不过,我有一个小问题,即使不涉及用户概念,OAuth 是否有用?我的意思是,该应用程序旨在使用没有登录功能。唯一需要检查的是 API 调用是否确实来自已安装的应用程序。
-
@user5256499:在这种情况下,应用就是用户。
标签: angularjs node.js api security server