我有一个概念性问题,想知道是否有人愿意提供帮助。
我将用一个简单的例子来解释我的观点。
我开发了一个简单的RESTFul API,Node.JS + Express + MongoDB作为后端。 API可以从Android游戏应用中保存hightscores。我使用基于令牌的身份验证,其中令牌是从秘密和受信任的用户名/密码(硬编码或非密码)生成的。
但我仍然怀疑安全性......
逆向工程是一件小事,因为任何开发人员都可以轻松找到API的后端端点,并将其与用户名和密码(或硬编码的密码)一起使用以获取令牌。
然后,令牌可用于通过API插入虚假高分。
我的问题是:
我想我可以删除包含硬编码用户名和密码的代码,但这并不能解决问题。
PD:用户说我的问题太宽泛了。我提出了3个具体问题,主题是避免连接到API的应用信息的可见性。我知道答案太多,但我不想要解决方案,只是一种调查方式。答案 0 :(得分:0)
没有完全证明这样做的方法。从理论上讲,一切都可以调试 - 包括你的验证机制(令牌生成)。
使用网络API是让您的移动应用与后端通信并在大多数情况下正常工作的好方法。但是,在您的情况下,您基本上希望确保API仅通过您拥有的Android应用程序使用。这通常通过加密通信协议并使其他人难以调试来完成。因此,您的应用程序将以某种方式加密通信,如果您不知道应用程序/服务器的内部,则难以解密。但是,这很难从头开始。
如果你想要一个现成的解决方案,你可以使用谷歌的Play Game Services,获得高分,成就等。这应该足够安全,但我不能说你的现状会有什么影响