我正在将我的react原生应用连接到Amplitude analytics,想知道是否可以只将原始API密钥放入代码中。用户可以查看这个,这样他们在理论上就可以开始使用API密钥并将不正确的数据发送到我的分析中吗?API密钥是否特定于我的应用,这样就不会出现问题?我是新来的,只是想知道我是否可以公开振幅分析的API密钥?
wgx48brx1#
用于分析、日志记录等的第三方库通常具有仅允许写入的API密钥。您应该检查每个库的细节,但以下是幅度的答案:https://github.com/amplitude/Amplitude-Javascript/issues/100为了让服务正常工作,你必须把它们暴露给客户端,所以有人把可能的垃圾数据作为最坏的情况放在里面的风险被看作是一个可以接受的权衡。尽管如此,我仍然建议为它们使用环境变量。不要只是把原始字符串放在源代码控制中。我无可奉告,所以作为对kevgathuku的回应:你不能在客户端上“隐藏”信息。如果信息在客户端上,它就会暴露。你能做的最好的事情就是模糊它。区别在于它是否是服务器上的API密钥,并在后端代码中使用。这些API密钥通常对目标API有更高级别的访问权限,不应包含在代码中。再次使用环境变量,并确保您的页面是HTTPS,以防止请求被轻易嗅探。
mqkwyuun2#
一般来说,公开你的API密钥不是一个好主意。任何人都可以得到那个密钥,并以你的身份使用它来发送数据,这对分析没有多大帮助。如果你可以选择将它设为私有,我相信React Native可以做到这一点,你应该这样做。我不知 prop 体细节,但一般来说,将你的密钥公开是一个非常糟糕的主意。
2条答案
按热度按时间wgx48brx1#
用于分析、日志记录等的第三方库通常具有仅允许写入的API密钥。您应该检查每个库的细节,但以下是幅度的答案:https://github.com/amplitude/Amplitude-Javascript/issues/100
为了让服务正常工作,你必须把它们暴露给客户端,所以有人把可能的垃圾数据作为最坏的情况放在里面的风险被看作是一个可以接受的权衡。尽管如此,我仍然建议为它们使用环境变量。不要只是把原始字符串放在源代码控制中。
我无可奉告,所以作为对kevgathuku的回应:
你不能在客户端上“隐藏”信息。如果信息在客户端上,它就会暴露。你能做的最好的事情就是模糊它。
区别在于它是否是服务器上的API密钥,并在后端代码中使用。这些API密钥通常对目标API有更高级别的访问权限,不应包含在代码中。再次使用环境变量,并确保您的页面是HTTPS,以防止请求被轻易嗅探。
mqkwyuun2#
一般来说,公开你的API密钥不是一个好主意。任何人都可以得到那个密钥,并以你的身份使用它来发送数据,这对分析没有多大帮助。如果你可以选择将它设为私有,我相信React Native可以做到这一点,你应该这样做。我不知 prop 体细节,但一般来说,将你的密钥公开是一个非常糟糕的主意。