1

我的本地网络中有一个网络设备(运行 c++),它运行一个 http(s) 服务器并提供一个 Restlike webservice 接口来提供一个 API 来控制设备。现在我的问题是,我如何授权用户(同一网络中的安卓智能手机)使用 Rest api?场景是这样的:智能手机上的用户必须输入 PIN 码(4 位)才能访问 api,从那时起应该可以调用所有其他 REST API 方法。

我的想法:1)PIN码将通过http(s)POST正文发送到设备,设备检查是否正常。2) 如果 PIN 正确,设备将生成一个令牌,该令牌必须在以后的每个请求中使用。

所以我的问题是: * 我应该如何使用 c++ 在设备上生成这样的令牌(什么算法) * 应该如何在每个请求上传输令牌?作为查询参数?还是在 POST 正文中?还是在标题中?

编辑:我还阅读了有关http 基本身份验证的信息。这也可以在我的设置中使用吗?亲切的问候

4

2 回答 2

0

简短的回答是:将其存储在标头中,代码可以使用哈希算法生成令牌,您的想法在第一点是正确的,但要确保这些令牌具有有限的生命周期。

于 2014-01-07T15:18:32.437 回答
0

使用标头或 POST 正文提交令牌时,切勿在 URL 中作为查询字符串的一部分。

请参阅 OWASP 页面了解 REST:https ://www.owasp.org/index.php/REST_Security_Cheat_Sheet#Authentication_and_Session_Management

于 2013-08-21T15:44:57.970 回答