我的RESTful实现有什么问题吗?

时间:2012-05-20 17:23:13

标签: php security rest restful-architecture

我有一个服务器应用程序,它为我编写的客户端提供Restful API。这就是我到目前为止所做的事情:

1)。提供登录REST URL,允许客户端输入用户/密码(通过SSL)

2)。在服务器上验证用户并返回sha1加密令牌(此时用户已登录服务器)。令牌像sha1(user.email +日期时间等)。

3)。客户使用令牌发出请求

4)。对于要在服务器上处理的请求,将从标头或URL中读取令牌,然后将其与登录用户sha1(user.email +日期时间等)进行比较。

5)。如果匹配,则返回资源,否则返回未登录的401。

6)。客户端完成后,他们可以注销并删除其本地令牌副本。

请告诉我这是否足够,或者如果您认为我正在做一些愚蠢的事情,请告诉我,以便我可以改进它。

谢谢

2 个答案:

答案 0 :(得分:1)

是的,这太可怕了。你正在制作自己的会话ID,而且它的痛苦不安全。会话ID必须始终为随机值,请使用session_start()。当然它不是很安静,但它比你正在构建的会话ID更安全。如果您的应用程序有一个SQL注入漏洞,我可以提取为另一个用户构建会话ID所需的数据。那是非常不安全的。

你也许从未听说过OWASP a9。事实上,你应该阅读整个owasp前10名。

答案 1 :(得分:0)

为什么用户可以在第一次调用中发送凭据时,为什么要使用sha1令牌方法呢?让他们每次只发送相同的凭据,这样你就不需要“登录”以及这种方法所需的所有会话管理。