作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在开发 Angular 2 应用程序。我正在通过我的服务进行多个 API 调用,但我不想发布 key 。
我知道从后端使用 key 是首选方法,但肯定有一种方法可以从前端执行此操作。
我一直在研究如何在前端有效地隐藏 API key ,但没有找到任何关于如何这样做的详细解释的资源。
执行此操作的最佳方法是什么?
最佳答案
嗯,事实是发送到客户端的任何,包括在 HTTP 调用中使用的信息,都可以被逆向工程。在 URL 中具有 API key 就其本身的性质而言将无法被隐藏。正如您所提到的,从客户端完全隐藏它的唯一真正方法是将其保留在后端。您最多可以做的是使其难以追踪,例如在环境变量中提供加密并让您的应用在发送前对其进行解密,但它仍将以纯文本形式出现在 HTTP 调用中。
好消息是您在评论中提到的 API 是公共(public) API,因此确实没有必要隐藏它们。他们提供的信息一开始就是公开的,如果有人真的想要一个 API key ,他们可以注册一个。 key 主要由服务本身用来跟踪使用情况(因此窃取它没有任何好处,因为使用只会增加并更快地耗尽)。如果您最终购买了一个并且该服务本身不提供混淆方法(即 session 跟踪/cookie),则您必须通过后端来缓解它。
你的头脑在正确的地方,但在这种情况下,这似乎不是必要的步骤。
关于angular - 如何在 Angular 2 客户端应用程序中隐藏/保护 API key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44119840/
我是一名优秀的程序员,十分优秀!