【问题标题】:How to hide API key in JSON API request如何在 JSON API 请求中隐藏 API 密钥
【发布时间】:2013-05-29 08:25:33
【问题描述】:

我正在创建一个提供卡号验证和交易插入服务的 API 服务器。

示例 API URL = http://mydomain.com/api.json?cardnumber=2342343244&api_key=jhj67asd234tgbh123

现有系统: 我正在为客户端系统(比如 ebay.com)提供一个 api 密钥。如果用户有一张有效的卡,我会提供折扣。因此,我的客户将向其最终用户提供一个表单字段以输入有效的卡号。

问题: 我的客户正在向我的域写入 ajax 请求以处理验证。问题是 api 密钥在控制台中可见,任何人都可以在客户端系统之外执行请求(安全损失)。

提议系统:请提议一个隐藏我的api密钥的系统,以便安全地处理请求。解决方案可能是任何其他编写 API 的方式。

我对 API 的了解较少。任何帮助将不胜感激。

【问题讨论】:

  • 你的答案有什么更新吗?

标签: json api security


【解决方案1】:

根据我的经验,没有一种简单的方法可以做到这一点。

我知道的唯一方法是为客户提供一次性密钥。一旦使用,它就会过期,客户将需要一个新的。

通过这种方式,密钥在控制台中是否可见并不重要,因为它只对单个请求有效。

我希望这会有所帮助,但我很想听听其他人的任何建议。

【讨论】:

  • 感谢您的回答。但实际上不可能始终向客户端提供新密钥。我们可以在请求的响应中发送新的 API 密钥。但即使是新的 API 密钥也会在控制台中可见。