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