【发布时间】:2017-03-08 14:07:14
【问题描述】:
我有一个概念性问题,想知道是否有人愿意提供帮助。
我会用一个简单的例子来说明我的观点。
我开发了一个简单的 RESTFul API,以 Node.JS + Express + MongoDB 作为后端。该 API 保存来自 Android 游戏应用程序的高分。我使用基于令牌的身份验证,其中令牌是从秘密和受信任的用户名/密码(硬编码或非硬编码)生成的。
但我对安全性仍有疑问......
逆向工程是小菜一碟,因为任何开发人员都可以轻松找到 API 的后端端点,并使用其用户名和密码(或硬编码)来获取令牌。
然后令牌可用于通过 API 插入虚假高分。
我的问题是:
- 有什么方法可以避免这个安全漏洞吗?
- 使用 RESTFull API 是否是将移动应用程序与服务器中的后端连接的正确方法?
- 如果不是,那么开发 APP-Server 通信以将数据保存在后端 DB 中的正确方法是什么?
我想我可以使用包含硬编码用户名和密码的代码,但这并不能解决问题。
PD:用户说我的问题太宽泛了。我提出了 3 个具体问题,主题是关于避免应用程序信息的可见性以连接到 API。我知道有太多的答案,但我不想要一个解决方案,只是一个调查的方法。
【问题讨论】:
-
你可以为你的第一个问题做proguard。对于你的第二个问题,答案是肯定的。应该实现 Rest API。
-
好的,谢谢。然后通过加密秘密对象和方法来让别人难以调试是最好的解决方案。谢谢
-
只是不允许知名 API 用户访问更新统计信息。或者禁止基于令牌的身份验证,只允许它使用您的应用程序。您也可以使用范围。
-
帕特里克,我不理解你。我想允许使用该应用程序,但如果用户反编译该应用程序,他可以找到端点和用于获取令牌的数据,不是吗?
标签: android node.js api security backend