如何为移动应用程序保护REST API?

时间:2012-02-29 22:58:44

标签: android iphone django rest

我正在尝试为Django为移动客户端添加REST接口。移动客户端将通过HTTPS使用JSON。我无法找到为移动设备实现这一目标的“最佳”方式。从搜索周围来看,#2似乎更有利于#1:

  1. 使用HTTP身份验证并建立基于cookie的会话。所有事务都将通过HTTP发生,JSON消息将只包含命令或数据。
  2. 在所有交易的每个JSON消息中传递用户名和密码(已加密),并且不依赖基于cookie的会话。

4 个答案:

答案 0 :(得分:8)

我建议首先使用登录电话发送用户名/密码。 JSON将传回一个authToken或accessToken,移动设备将为后续所有呼叫发送回来。然后,您将检查以确保authToken有效。这是许多API采用的方法。在他们的数据库中,他们将API密钥绑定到他们登录的用户帐户。

答案 1 :(得分:3)

除非您希望将这些服务提供给其他开发人员(他们将代表您的最终用户访问),否则OAuth就会过度使用。最好使用选项2,但我建议使用摘要式身份验证而不是密码身份验证。将它与SSL结合起来,你绝对不错。

答案 2 :(得分:1)

2号是首选,而不是自己动手,我建议尽可能使用OAuth身份验证。客户端和服务器库现在都可以在大多数平台上使用。查看http://oauth.net了解详情。

答案 3 :(得分:0)

只要您使用的是实际加密而不是base64或某些自行开发的混淆算法,#2就可以了。您可能还想考虑许多公司采用的路由,即将API密钥绑定到用户名。