【发布时间】:2021-01-27 15:46:49
【问题描述】:
我是网络开发的新手。建立一个爱好天气预报的网站。我有一个 API 密钥可以从预测服务(openweathermap)发出“GET”请求。我知道我不想将这个密钥暴露给公众。所以我目前的计划是让用户通过文本输入选择他们的位置,客户端 JavaScript 函数将此信息发送到服务器端 Perl 脚本,该脚本向预测服务发出“GET+key”请求。 Perl 脚本将预测数据返回到客户端 JavaScript 以显示在页面上。
由于 API 密钥存储在服务器端脚本中,我假设它对公众不可见。这是真的吗?我的上述方法好用吗?
【问题讨论】:
-
是的,你是对的,如果你是从“后端”发出请求,那么没有人可以访问 headers-url,因此你的密钥。
-
某些 API 附带与特定站点绑定的 API 密钥。 Google Analytics、Maps 和其他类似的用于跟踪的 JavaScript sn-ps 就是这样工作的。这允许您在实际上没有保密的地方使用 API 密钥。听起来这在这里行不通。因此,将其放在后端是明智之举。如果您有一个允许 CGI 的托管环境,那将很简单。您需要知道如何运行 CGI,以及如何发出请求和呈现响应。例如,您可以重新打包有效负载并将其发送出去,然后逐字发送回响应。