移动APP - API认证概念

时间:2016-10-26 09:20:54

标签: android node.js api security backend

我有一个概念性问题,想知道是否有人愿意提供帮助。

我将用一个简单的例子来解释我的观点。

我开发了一个简单的RESTFul API,Node.JS + Express + MongoDB作为后端。 API可以从Android游戏应用中保存hightscores。我使用基于令牌的身份验证,其中令牌是从秘密和受信任的用户名/密码(硬编码或非密码)生成的。

但我仍然怀疑安全性......

逆向工程是一件小事,因为任何开发人员都可以轻松找到API的后端端点,并将其与用户名和密码(或硬编码的密码)一起使用以获取令牌。

然后,令牌可用于通过API插入虚假高分。

我的问题是:

  • 有没有办法避免这个安全漏洞?
  • 使用RESTFull API是否正确将移动应用与服务器中的后端连接?
  • 如果没有,这是开发APP-Server通讯以在后端数据库中保存数据的正确方法吗?

我想我可以删除包含硬编码用户名和密码的代码,但这并不能解决问题。

PD:用户说我的问题太宽泛了。我提出了3个具体问题,主题是避免连接到API的应用信息的可见性。我知道答案太多,但我不想要解决方案,只是一种调查方式。

1 个答案:

答案 0 :(得分:0)

没有完全证明这样做的方法。从理论上讲,一切都可以调试 - 包括你的验证机制(令牌生成)。

使用网络API是让您的移动应用与后端通信并在大多数情况下正常工作的好方法。但是,在您的情况下,您基本上希望确保API仅通过您拥有的Android应用程序使用。这通常通过加密通信协议并使其他人难以调试来完成。因此,您的应用程序将以某种方式加密通信,如果您不知道应用程序/服务器的内部,则难以解密。但是,这很难从头开始。

如果你想要一个现成的解决方案,你可以使用谷歌的Play Game Services,获得高分,成就等。这应该足够安全,但我不能说你的现状会有什么影响