背景:
我正在为REST Web服务设计身份验证方案。这并不是“真正”需要安全的(它更多是一个个人项目),但我想使其与练习/学习经验一样安全。我不想使用SSL,因为我不想麻烦,而且在大多数情况下也不需要设置它的开销。
这些SO问题对于我入门特别有用:
RESTful身份验证
保护REST API / Web服务的最佳做法
最佳SOAP / REST / RPC Web API的示例?你为什么喜欢他们?那他们怎么了?
我正在考虑使用Amazon S3身份验证的简化版本(我喜欢OAuth,但对于我的需求而言似乎太复杂了)。我在请求中添加了服务器提供的随机生成的随机数,以防止重放攻击。
要解决这个问题:
S3和OAuth都依赖于对请求URL以及一些选定的标头进行签名。他们都没有在 POST或PUT请求的请求主体上签名。这难道不容易受到中间人攻击,这种中间人攻击会保留url和标头并用攻击者想要的任何数据替换请求正文?
似乎我可以通过在已签名的字符串中包含请求正文的哈希值来预防这种情况。这样安全吗?
慕桂英4014372
狐的传说