我有一个服务器应用程序,它为我编写的客户端提供Restful API。这就是我到目前为止所做的事情:
1)。提供登录REST URL,允许客户端输入用户/密码(通过SSL)
2)。在服务器上验证用户并返回sha1加密令牌(此时用户已登录服务器)。令牌像sha1(user.email +日期时间等)。
3)。客户使用令牌发出请求
4)。对于要在服务器上处理的请求,将从标头或URL中读取令牌,然后将其与登录用户sha1(user.email +日期时间等)进行比较。
5)。如果匹配,则返回资源,否则返回未登录的401。
6)。客户端完成后,他们可以注销并删除其本地令牌副本。
请告诉我这是否足够,或者如果您认为我正在做一些愚蠢的事情,请告诉我,以便我可以改进它。
谢谢
答案 0 :(得分:1)
session_start()
。当然它不是很安静,但它比你正在构建的会话ID更安全。如果您的应用程序有一个SQL注入漏洞,我可以提取为另一个用户构建会话ID所需的数据。那是非常不安全的。
你也许从未听说过OWASP a9。事实上,你应该阅读整个owasp前10名。
答案 1 :(得分:0)
为什么用户可以在第一次调用中发送凭据时,为什么要使用sha1令牌方法呢?让他们每次只发送相同的凭据,这样你就不需要“登录”以及这种方法所需的所有会话管理。