我注意到某些API让您将API密钥作为url参数传递,而其他API则将其传递给HTTP HEADER。我正在开发一个基于Web的应用程序,它将严重依赖REST API,而现在我只是拥有它,因此API KEY作为url参数传递。
我的问题是其中一个选项是否比另一个更安全?
答案 0 :(得分:6)
在这两种情况下,API密钥都将以未加密的方式传递。所以除非你使用HTTPS,否则两者都是不安全的。
实际上,由于 -
,HTTP标头更加安全除此之外:除非您要求用户使用其凭据登录,否则无法保护Web上的REST API。任何人都可以轻松识别API密钥并向您的服务器发出请求。
编辑: 回应@ segfault的评论 -
网站用户通常不会输入API密钥。他们输入了他们的用户名和密码,并通过交易获取API密钥或访问令牌,因为它通常被称为。
如果您强制用户输入API密钥而不是用户名和密码,那么它就是安全的。但正如我所说,我没有看到任何严肃的应用程序这样做。
更具体地说,我的意思是“如果后端API需要API密钥,并且您正在从浏览器进行AJAX调用,并且您没有要求用户提供某种凭据,那么您就是不安全的”