移动到服务器API安全性

Bry*_*isi 9 security api mobile titanium appcelerator

我的任务是设计一个系统,允许我们的用户登录他们的帐户并使用他们的手机与我们的服务进行交互.我担心应用程序的安全性.

基本上,我们允许人们使用Facebook或Twitter通过OAuth登录.移动应用程序(使用Appcelerator钛构建)也应该这样做.成功登录手机后,我需要通知我的应用程序有人用FB或Twitter登录,以便我的应用程序可以检索用户的应用程序特定的用户ID.

我的第一个想法是编写一个手机可以调用的API,可以接受Facebook或Twitter userId等参数.我会查询我的数据库并找到他们的内部用户ID并将其返回到手机.

这样可以正常工作,但它完全不安全.任何人都可以使用Facebook用户ID访问相同的API,并且API只会返回内部ID(以及应用程序所需的任何其他数据),而不知道请求是否已获得授权.

这是我的第一个移动应用程序,所以我不太确定在我的API上实现安全性的正确方法.

bh8*_*h88 -6

大多数 API 设置都包含开发人员独有的某种类型的 SecretKey 或 APIKey。由于您是唯一的开发人员,因此您可以在移动应用程序中设置一个密钥/哈希值,该密钥/哈希值也可以通过该密钥/哈希值来成功返回数据。

http://lcsd05.cs.tamu.edu/slides/keynote.pdf是 Google 给出的关于从头开始设计良好 API 的主题演讲。

另请查看上一个问题

  • 密钥仅在您不分发时才有效。我无法将密钥放在客户端设备上,因为任何人都可以反编译应用程序或嗅探流量以暴露密钥。那么它就不再是秘密了。 (2认同)
  • 也遇到这个问题。密钥可以被反编译。为什么这个答案被接受? (2认同)