javascript - 使用 JavaScript 时如何保护 API Key?

标签 javascript api api-key

所以,我正在开发一个仅供我自己使用的小型应用程序,也可能是 Git 上的一个开源项目。我正在使用来自 Envato Marketplaces 的 API,正如大家所知,有些操作不需要任何 key ,但同时也有一些操作需要。

我首先用 PHP 为 Envato API 制作了一个很好的 API 包装器,但后来我决定用 JavaScript 进行一些实验,所以我正在使用 JavaScript 开发相同的包装器。到目前为止,我的公共(public)操作没有任何问题,但我现在必须使用 API Key。

我的问题是是否有一种方法可以保护 JavaScript 中的 API key 。我不能只是将其以纯文本形式放置在那里,因为其他人看到代码后就可以使用它。那么是否存在 API 保密的实现呢?也许可以使用 XHR 从 JSON 文本文件中获取它?

最佳答案

简短回答:否

无论您如何混淆 key ,您仍然必须发送它以使其在客户端上可用,因此可以使用 fx 提取它。 Firebug 。

即使您设计了一种很棒的神奇方法来保密 key ,在某些时候您也必须发出实际的 API 请求,并且由于它必须从浏览器发送,因此攻击者将能够读取从 Firebugs net 选项卡中以纯文本形式输出 key 。

正确的做法是围绕需要 key 的 API 调用创建一个 PHP 包装器,然后从 Javascript 调用该包装器。

关于javascript - 使用 JavaScript 时如何保护 API Key?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11470389/

相关文章:

javascript - 如何使用 D3.js 设置下拉列表的位置?

javascript - Angular 无法识别提供程序内部的函数

javascript - 无法使用天气 json API

swift - 如何将 YELP API 与 OAuthSwift 结合使用?

node.js - 具有 Oracle 数据库持久性的 ActionHero.js 框架

google-maps - 检查 Google map API key 有效性

android - 谷歌地图不显示使用 flutter 的 Android

javascript - 在 JavaScript 中保护 Azure API 剩余调用

android - 为什么应用程序更新后要重新注册到 gcm?

javascript - BrowserSync Gulp 无法在 Chrome 中打开