使用时间戳和异步客户端进行请求身份验证的最佳做法

时间:2014-01-17 21:29:58

标签: authentication asynchronous go

我在Go中写了一个安静的api。我想验证每个请求。为此,服务器和客户端共享一个秘密。

要向/foo/bar/验证GET请求,客户端会将带有时间戳的nonce参数添加到网址/foo/bar/?nonce=13899932199128265,然后将带有密码的数据的hmac添加到网址。它提供了类似/foo/bar/?nonce=13899932199128265&hmac=hd7nd7s9s702j

的内容

为了验证传入请求的有效性,服务器验证在时间戳之后没有来自客户端的请求,并且hmac是valide。

我认为这是验证请求的常用方法。例如,mtgox使用类似的过程。

我遇到的问题是我的客户可能会同时需要一个网址列表[url1,... urln]。在这种情况下,没有任何保证客户端发送的第一个请求将首先到达服务器。实际上,请求的任何排列都将导致403错误。

我的第一个问题很简单:这是一个真正的问题吗?请求订单在运输过程中是否会发生变化?

第二,完全是客户端验证没有发生403错误吗?

有更好的方法吗?

非常感谢!

0 个答案:

没有答案