PHP中REST Api的Auth标记

时间:2014-03-26 21:00:43

标签: php api rest

我是PHP的新手:)。我正在使用PHP创建一个REST API,供移动客户端(Android和IOS)使用。目前,PHP网站(yii)允许用户使用用户名和密码登录(散列并存储在DB中)。我想到实现这个的方式是,我可以有一个登录REST api调用来验证用户并生成一个令牌(一些随机数或sessionid)并将该令牌的散列发送给客户端。然后,客户端可以在REST api调用上每次在http标头上传递该标记,并且api方法将在每次调用时验证这个标记吗?

现在,

  1. 我想知道这种方法有什么缺点吗?
  2. 还有PHP示例如何做到这一点吗?
  3. 此令牌如何确保安全性?有人可以嗅探此令牌并将其发送到请求中,服务器仍然会允许它吗?或者假设我随着时间过期令牌,移动设备是否应再次进行身份验证以获取新令牌?

1 个答案:

答案 0 :(得分:0)

我的答案不会是唯一的答案,我相信你会在这个问题上得到很多反馈。

首先是哈希。我不建议这样做。哈希可以在中间攻击等人的路线中被窃听。一般来说,URL中的敏感信息是个坏主意。

为什么不使用普通会话?在第一次呼叫时授权...然后在服务器和呼叫者上创建会话......这样就可以确保接下来的请求得到授权。

用户/服务/服务器可以简单地引用创建的会话cookie,并通过这样做进行验证。这种方式更安全,不会泄露敏感信息。

并且..如果可能的话当然使用HTTPS ...否则信息也可以被攻击接受。这一切都取决于你想要的安全级别。你可以堆叠安全层......但如果你通过线路发送关于猫的信息,这可能没有意义:)