Amplitude API密钥可以公开吗?

时间:2017-09-01 19:46:07

标签: api reactjs react-native google-analytics

我正在将我的反应原生应用程序连接到Amplitude分析,并想知道将原始API密钥放入代码中是否可以。用户可以查看这个,所以他们理论上可以开始使用API​​密钥并向我的分析发送不正确的数据吗?是一个特定于我的应用程序的API密钥,这样这不会是一个问题吗?我是新手,只是试图找出是否可以将Amplitude Analytics的API密钥公开?

2 个答案:

答案 0 :(得分:0)

通常,公开公开API密钥并不是一个好主意。 任何人都可以获得该密钥并使用它来发送数据,这不会使分析非常有用。 如果您可以选择将其设为私有,我确信可以使用React Native,您应该这样做。我不知道具体细节,但总的来说,这是一个非常糟糕的想法,向公众公开你的钥匙。

答案 1 :(得分:0)

用于分析,日志记录等的第三方库通常具有仅允许写入的API密钥。您应该检查每个库的细节,但这是幅度的答案:https://github.com/amplitude/Amplitude-Javascript/issues/100

您必须将它们公开给客户端才能使服务正常工作,因此,在最坏的情况下,有人可能放入垃圾数据的风险被认为是可以接受的折衷方案。不过,我仍然建议为它们使用环境变量。不要只是将原始字符串放在源代码管理中。

我无法发表评论,所以回应kevgathuku:

您不能在客户端上“隐藏”东西。如果在客户端上,则将其公开。最好的办法就是对它进行混淆。

区别在于服务器上是否可以使用某些API密钥,并用于后端代码中。这些通常具有对目标API的更高级别的访问权限,并且永远不应包含在代码中。再次使用环境变量,并确保您的页面是HTTPS,以防止轻易嗅探请求。