要求客户端在发送任何命令之前从服务器获取nonce - 仅使用一次的号码。在将nonce发送给客户端之后,来自该客户端的任何命令(其中不包括您所使用的nonce)显然是伪造的。即使有人嗅到nonce,他们也无法使用它,因为他们不知道创建自己的消息所需的加密密钥,并且同一个人将无法重用旧的请求,因为它们不匹配任何目前活跃的nonce。
编辑:显然,您可以使用各种智能方法在客户端上生成一个nonce,以避免额外的往返,但这将更加棘手。
您可以在请求中加入nonce,并拒绝重复使用已经看过的现时的任何请求。