高德地图 JS API key 的保护,安全密钥的使用方案
背景因为高德地图的 key 被盗用,导致额度不耗尽。增加了不必要的资本,所以对 key 的保护尤为重要。
目前情况
如今项目中使用高德地图是直接将 key 写在代码中。https://i-blog.csdnimg.cn/direct/3a094d346a2a43dfba28635e477a8daa.png#pic_center
在调用高德 api 的时间,key 会明文拼接在请求所在上,因此会被别有效心的人使用。
解决方案
业务运营多年,高德地图的 key 已是多年前创建的,所以第一步就是创建一个新的 key。
https://i-blog.csdnimg.cn/direct/bb10116430ce42f2a0fcc55664453b2d.png#pic_center
明文密钥配合域名白名单
2021年12月02日以后创建的 key 需要配合安全密钥一起使用,而且添加了域名白名单配置。
https://i-blog.csdnimg.cn/direct/9785269c740e47f3bb0c7954a06600dd.png#pic_center
项目代码做个简单的修改即可:
https://i-blog.csdnimg.cn/direct/dfd169b9870a4aa297bbe30d8a719161.png#pic_center
如果在域名白名单中的调用接口能正常使用,如域名不在白名单中,则提示没有权限。
https://i-blog.csdnimg.cn/direct/6d918cc4ae8940b292223796494dbc24.png#pic_center
以后看已经起到了限制作用,但现实是防君子不防小人的方案。不建议在生产情况使用,至于原因,你琢磨琢磨。
署理转发请求
因为需要 key 需要配合安全密钥一起使用,不然就会提示没有权限,所以只需要将安全密钥“隐藏”起来就可以了。
https://i-blog.csdnimg.cn/direct/6bf2850af07a4ac9bd49b036dbd2b617.png#pic_center
请求会将 key 和安全密钥明文拼接在一起,为了将安全密钥“隐藏”起来,只需要将请求署理到自己的服务器上,然后在服务器大将安全密钥拼接上。
以 Nginx 为例:
https://i-blog.csdnimg.cn/direct/eacf694f10014b94a7125071d34923a3.png#pic_center
项目代码配置署理所在即可:
https://i-blog.csdnimg.cn/direct/2375503dca4246a5b813341f0946997e.png#pic_center
到处,完美收官。
跋文
个人项目,可以随意玩耍。公司项目凡是涉及到钱财的东西都要审慎一些,不要低估灰产的能力。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]