【发布时间】:2012-09-25 15:25:47
【问题描述】:
许多 Web REST API 为您提供密钥和秘密。当您向 API 发出请求时,您必须将它们都返回。这个有什么用?一个还不够吗?
这不是公钥/私钥交换:你给他们两个,对吧?
您也不会像在许多哈希算法中那样使用密钥对您的内容进行哈希处理并计算其他值:您总是返回相同的密钥和秘密。
我唯一能找到的是对How to use a key and secret for verification? 的回答,该回答说服务器可以使用密钥廉价地散列您的域(或者可能是用户名或其他内容)并检查它是否与密钥匹配。真的有用吗?
(奖励将是这种机制的名称。它似乎与我在 stackoverflow/wikipedia 上找到的关于加密机制的内容不匹配。)
更新:答案和几个 cmets 告诉我,在请求中同时传递密钥和相应的密钥是一个坏主意。它确实在实践中发生,但它仍然是一个坏主意。
【问题讨论】:
-
请阅读:thebuzzmedia.com/… 这应该让您了解为什么同时使用密钥和秘密。
-
方便的资源!但是...我询问了发送秘密和密钥的 API,因此没有任何 HMAC 内容。像raven.readthedocs.org/en/latest/config/… 和 oauthing 到 github 的初始阶段:app id 和 app secret 都在同一个请求中。
-
好吧,这看起来对我来说并不安全。请注意,我不是安全专家,但根据我的理解,我认为任何请求都不应该发送密钥。它应该离线传送给您(即通过单独的邮件甚至在纸上),并且应该用于散列您的请求,但永远不要发送到任何地方。
-
看看我对这个问题的回答是否有帮助:stackoverflow.com/questions/1482472/…
标签: rest