注册

高德地图 JS API key 的保护,安全密钥的使用方案

背景


因为高德地图的 key 被盗用,导致额度不耗尽。增加了不必要的成本,所以对 key 的保护尤为重要。


目前情况


现在项目中使用高德地图是直接将 key 写在代码中。
carbon.png


在调用高德 api 的时候,key 会明文拼接在请求地址上,因此会被别有用心的人利用。


解决方案


业务运营多年,高德地图的 key 已是多年前创建的,所以第一步就是创建一个新的 key。
Snipaste_2024-08-20_15-50-12.png


明文密钥配合域名白名单


2021年12月02日以后创建的 key 需要配合安全密钥一起使用,而且添加了域名白名单配置。
Snipaste_2024-08-20_15-50-48.png
项目代码做个简单的修改即可:
carbon.png
如果在域名白名单中的调用接口能正常使用,如域名不在白名单中,则提示没有权限。
Snipaste_2024-08-20_11-55-32.png
从此看已经起到了限制作用,但实际是防君子不防小人的方案。不建议在生产环境使用,至于原因,你琢磨琢磨。


代理转发请求


因为需要 key 需要配合安全密钥一起使用,不然就会提示没有权限,所以只需要将安全密钥“隐藏”起来就可以了。
Snipaste_2024-08-20_16-03-27.png
请求会将 key 和安全密钥明文拼接在一起,为了将安全密钥“隐藏”起来,只需要将请求代理到自己的服务器上,然后在服务器上将安全密钥拼接上。


以 Nginx 为例:
carbon.png


项目代码配置代理地址即可:
carbon.png


到处,完美收官。


后记


个人项目,可以随意玩耍。公司项目凡是涉及到钱财的东西都要谨慎一些,不要低估灰产的能力。


作者:前端提桶人
来源:juejin.cn/post/7405777954516025370

0 个评论

要回复文章请先登录注册