如何通过HTTP保护Web服务调用

时间:2014-01-23 05:43:29

标签: web-services security http hash parameters

通过HTTP通信渠道保护Web服务调用的最佳做法是什么?

我的目标是在查询字符串中使用额外的参数来制作时间限制的哈希值(通过客户端计算生成)来定义发送请求是否有效。这将通过服务器端应用程序了解如何知道客户端算法。但是当客户端应用程序被解编译时,这种方式也存在风险!

那么最好的方法是什么?我在寻找一个动态算法,任何想法?

1 个答案:

答案 0 :(得分:0)

从您的评论中听起来您需要防范“重播攻击”(有人发送相同的请求两次,当您只希望他们能够发送一次时)。处理此问题的常用方法是使用nonce。在基本层面上,它的工作原理如下:

1)客户想要提出请求;在执行此操作之前,它会向服务器请求一个nonce,这是一个不会被重用的值,并且不应该是可预测的(例如,基于时间)。

2)客户端从服务器获取nonce,然后发出请求,将其刚从中获取的nonce发送回服务器

3)如果客户端(或其他客户端)然后尝试在上面的步骤2中发出请求,则服务器将不接受它,因为它将包含服务器已标记为“已使用”的nonce 。“

这有点过于简单化,但这就是nonce在防止重放攻击方面的工作方式。

注意:“nonce”来自“使用过一次的号码”。但是,nonces实际上并不需要数字。