问题描述
我购买了 fusion charts 的许可证。 Fusion charts 文档在这里说... https://www.fusioncharts.com/dev/upgrading/license-activation 我必须使用这个函数调用来申请许可证...
FusionCharts.options.license({
key: 'KEY_GOES_HERE',creditLabel: false,});
如果我把钥匙放在里面,任何访问我网站的人都可以轻松地从视图 -> 浏览器源中获取它。我该如何避免?这是一个简单的 HTML 网站。
解决方法
您可以使用以下任一方法:
-
不是直接在 JS 代码中传递键,而是通过环境、应用程序变量传递它们。并将 env 文件添加到 gitignore
-
对用于许可证激活的密钥和 JS 代码使用混淆处理。
-
您可以将密钥的值存储在数据库中 & 并获取数据值,以便最终用户无法访问它。
-
如果您知道将使用图表的域/子域,您可以通过向 sales@fusioncharts.com 发送请求来限制这些域的许可密钥
据我所知,没有办法在前端完全隐藏它。这样做的原因是,即使在发出请求时以某种方式隐藏了密钥,信息也必须存在,因此可以通过查看请求数据找到密钥。
您希望防范什么决定了您应该如何应对。如果你只是想隐藏它不被网络爬虫捡到,那么我想在你发送之前加密它然后解密它就足够了。
如果您想防止任何人窃取它,那么唯一的方法就是让服务器充当代理。您将调用一个 API,然后该 API 将在后端使用您的 API 密钥,远离用户的窥探。然后,您的后端 API 只会将来自 fusioncharts 的响应返回给用户。