API密钥是否对http无价值,因为可以嗅探请求的参数? 它们仅通过https可靠吗? 即便如此,你是不是依赖客户小心他们的钥匙?
答案 0 :(得分:2)
由于请求的参数可以被嗅探,因此API密钥在http上是没有价值的吗?
不,因为只有在同一局域网上才能执行嗅探,系统管理员对IT安全性一无所知,或者您可以捕获传输的流量(这通常非常困难)。此外,存在诸如IPSec之类的技术,其在网络层上提供真实性和隐私性。
因此,使用纯文本身份验证不会提供零附加安全性。
它们仅通过https可靠吗?
这取决于您对“可靠”的定义。往上看。无论如何,使用传输安全性可以防止攻击者阅读您的通信。如果强制执行SSL,则也会阻止中间人攻击。
即便如此,你是不是依赖客户小心他们的钥匙?
当然,您总是必须信任您的授权用户。这与API密钥或密码或任何其他内容无关。
答案 1 :(得分:1)
取决于API密钥的使用方式。
如果您为开发人员分配API密钥,并且开发人员将API密钥作为移动应用程序的一部分进行分发,或者使用API密钥从网页进行AJAX调用 - 则API密钥毫无意义。任何人都可以嗅到钥匙,并且在中间攻击中不需要任何老练的人。
但是如果开发人员使用服务器端代码中的API密钥,并且您的API通过https工作,那么这是一种相当安全的技术。
简而言之,安全性在于信任开发人员保密API密钥。就像你希望用户保密密码一样。