繁体   English   中英

PHP中的REST Api的身份验证令牌

[英]Auth tokens for REST Api in PHP

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

现在,

  1. 我想知道这种方法是否有缺点?
  2. 还有任何有关如何执行此操作的PHP示例吗?
  3. 该令牌如何确保安全性? 有人可以嗅探此令牌并将其发送到请求中,服务器仍将允许它吗? 还是假设我随着时间的推移使令牌过期,手机应该再次进行身份验证以获取新的令牌吗?

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

首先是哈希。 我不建议这样做。 哈希可以在中间攻击等情况下被人窃取。通常,URL中的敏感信息是个坏主意。

为什么不使用普通会话? 在第一个呼叫上进行授权...然后在服务器和调用方上创建会话。这样,您可以确保下一个请求得到授权。

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

并且..如果可能的话,请使用HTTPS ...否则信息也可能受到攻击。 这完全取决于您想要的安全级别。 您可以堆叠安全层...但是,如果您通过网络发送有关猫的信息,那可能就没有意义了:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM