1

我开始关注移动开发,确切地说是 Android 开发。

移动应用程序将主要是 UI,所有业务都将发生在由 Google App Engine 托管的 Web 应用程序上(我认为通信将处于静止状态)。

如何确保我的 rest api 不被任何其他软件/应用程序调用?因为任何人都可以嗅探网络,获取我的 api 调用,然后伪造他们的。如果我的 api 设计良好且完美无瑕,那应该不是问题,但肯定不会是这样。

  • 登录名/密码不是解决方案,因为它可以被嗅探

  • SSL 通信也是因为用户可以为自己的应用程序使用相同的证书

我认为没有完美的方法,只有部分解决方案(比如用任何丑陋的技术隐藏证书,这样即使反编译也无济于事)。

编辑 :

我发现了这个:如何确保 API 请求来自我们的移动 (ios/android) 应用程序?

但我想知道在 Http 或 App Engine 或其他任何东西中是否已经存在这样做的方法。我真的不喜欢自己编写安全代码。

雷米

4

1 回答 1

0

似乎在大多数情况下,将 REST API 下放到用户而不是应用程序就足够了。这通常被视为一种好处,因为它允许多个应用程序轻松使用 API。

您链接到的问题仍然不完全安全,答案并没有真正告诉您如何确保它是您自己的应用程序参与注册过程。

创建防黑客的东西几乎是不可能的。通常这只是让黑客更难破解的问题,所以不值得尝试。

您可能希望在客户端上实现自定义哈希函数,从服务器->客户端发送一些数据,使用自定义函数对其进行哈希处理,然后将其发送回您的服务器。下一步是混淆此代码并添加调试器检测以使其变得困难。

真正关心安全性(即 Netflix DRM)的人会利用在各种设备上运行硬件支持的“安全操作系统”。我不确定 Apple 是否支持这一点。它可以在各种 Android 平台上使用,但最后我检查了它没有适用于它的 Android java API(你必须通过本机代码访问它)。

http://www.globalplatform.org/mediaguidetee.asp

http://www.globalplatform.org/specificationsdevice.asp

于 2012-10-10T17:21:20.550 回答