php REST API验证元数据良好实践

php REST API验证元数据良好实践,php,api,rest,Php,Api,Rest,我正在使用PHP5.4构建一个RESTAPI,并将其放入自己的自定义auth库中。我严格遵循2条腿的OAUTH使用的格式。(参考号:) 按照这个规范,我有一些元数据需要随每个请求一起发送,以便我可以安全地对用户进行身份验证 AppId->这是为了验证谁在发送请求。还要知道使用哪个密钥生成HMAC校验和服务器端 时间戳->用于处理重播攻击 校验和->这是一个HMAC哈希,以确保请求未被篡改 初始身份验证后,AccessToken->将用于每个请求 我只是想知道发送所有这些元数据的最佳实践是什么 我

我正在使用PHP5.4构建一个RESTAPI,并将其放入自己的自定义auth库中。我严格遵循2条腿的OAUTH使用的格式。(参考号:)

按照这个规范,我有一些元数据需要随每个请求一起发送,以便我可以安全地对用户进行身份验证

  • AppId->这是为了验证谁在发送请求。还要知道使用哪个密钥生成HMAC校验和服务器端
  • 时间戳->用于处理重播攻击
  • 校验和->这是一个HMAC哈希,以确保请求未被篡改
  • 初始身份验证后,AccessToken->将用于每个请求
  • 我只是想知道发送所有这些元数据的最佳实践是什么

    我正在考虑创建自定义标题并将这些内容发送到那里。通过这种方式,我可以将这些数据从函数所需的实际参数中分离出来,但我不确定这是最佳实践

    例如:MY-API-APP-ID:243242,MY-API-TIMESTAMP:123123等

    所有这些东西都应该作为参数随每个请求一起传递吗

    GET方法呢,它们应该放在查询字符串中吗? (?时间戳=12312&appId=123123…)


    谢谢

    不久前,我确实做了类似的事情。我编写了自己的API验证器作为Codeigniter库,并自动加载它,以便它检查通过的每个页面请求

    我决定在每次请求时以自定义标题发送所有内容:

    Auth-Token
    Auth-Device
    Auth-Timestamp
    Auth-Hash
    
    我不建议在GET参数中执行这些操作,因为这会使使用URL变得更麻烦,而且在这一点上它就不再是RESTful了

    这就是说,我相信有些人会指出,您不应该创建自定义请求头,老实说,我相信在身份验证解决方案中应该如何使用头有一个标准实践。但是应用程序和API工作得很好,所以我很满意我的“呃,它工作”解决方案


    还注意到,我们使用了SSL加密了头文件,防止了任何类型的嗅探或中间人攻击。p> 不久前,我确实做了类似的事情。我编写了自己的API验证器作为Codeigniter库,并自动加载它,以便它检查通过的每个页面请求

    我决定在每次请求时以自定义标题发送所有内容:

    Auth-Token
    Auth-Device
    Auth-Timestamp
    Auth-Hash
    
    我不建议在GET参数中执行这些操作,因为这会使使用URL变得更麻烦,而且在这一点上它就不再是RESTful了

    这就是说,我相信有些人会指出,您不应该创建自定义请求头,老实说,我相信在身份验证解决方案中应该如何使用头有一个标准实践。但是应用程序和API工作得很好,所以我很满意我的“呃,它工作”解决方案


    还注意到,我们使用了SSL加密了头文件,防止了任何类型的嗅探或中间人攻击。p> 谢谢你的回复!我也会使用codeigniter。使用自定义标题有什么坏处吗?没有,但这里有一些事情需要考虑:这听起来很适合我的需要。我将继续这个实现。谢谢你的意见!谢谢你的回复!我也会使用codeigniter。使用自定义标题有什么坏处吗?没有,但这里有一些事情需要考虑:这听起来很适合我的需要。我将继续这个实现。谢谢你的意见!