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

news/2024/12/13 18:17:08/

背景

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

目前情况

现在项目中使用高德地图是直接将 key 写在代码中。在这里插入图片描述
在调用高德 api 的时候,key 会明文拼接在请求地址上,因此会被别有用心的人利用。

解决方案

业务运营多年,高德地图的 key 已是多年前创建的,所以第一步就是创建一个新的 key。
在这里插入图片描述

明文密钥配合域名白名单

2021年12月02日以后创建的 key 需要配合安全密钥一起使用,而且添加了域名白名单配置。
在这里插入图片描述
项目代码做个简单的修改即可:
在这里插入图片描述
如果在域名白名单中的调用接口能正常使用,如域名不在白名单中,则提示没有权限。
在这里插入图片描述

从此看已经起到了限制作用,但实际是防君子不防小人的方案。不建议在生产环境使用,至于原因,你琢磨琢磨。

代理转发请求

因为需要 key 需要配合安全密钥一起使用,不然就会提示没有权限,所以只需要将安全密钥“隐藏”起来就可以了。
在这里插入图片描述

请求会将 key 和安全密钥明文拼接在一起,为了将安全密钥“隐藏”起来,只需要将请求代理到自己的服务器上,然后在服务器上将安全密钥拼接上。

以 Nginx 为例:
在这里插入图片描述
项目代码配置代理地址即可:
在这里插入图片描述

到处,完美收官。

后记

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


http://www.ppmy.cn/news/1554821.html

相关文章

函数与结构体(入门6)

【深基7.例1】距离函数 #include <iostream> #include <iomanip> #include <cmath> using namespace std; int main() {double x1, x2, x3, y1, y2, y3;cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;double d1 pow(pow(…

STM32模拟I2C通讯的驱动程序

目录 STM32模拟I2C通讯的驱动程序 开发环境 引脚连接 驱动程序 STM32模拟I2C通讯的驱动程序 开发环境 立创天空星开发板、主控芯片为STM32F407VxT6 引脚连接 使用stm32的PB9引脚模拟I2C时钟线SCL、PB8引脚模拟I2C数据线SDA 驱动程序 i2c.h文件如下&#xff1a;#ifndef…

MySQL | 尚硅谷 | 第10章_创建和管理表

MySQL笔记&#xff1a;第10章_创建和管理表 文章目录 MySQL笔记&#xff1a;第10章_创建和管理表MySQL笔记&#xff1a;第10章_创建和管理表 1. 基础知识1.1 一条数据存储的过程1.2 标识符命名规则1.3 MySQL中的数据类型 2. 创建和管理数据库2.1 创建数据库2.2 使用数据库2.3 修…

EasyPlayer.js播放器如何在iOS上实现低延时直播?

随着流媒体技术的迅速发展&#xff0c;H5流媒体播放器已成为现代网络视频播放的重要工具。其中&#xff0c;EasyPlayer.js播放器作为一款功能强大的H5播放器&#xff0c;凭借其全面的协议支持、多种解码方式以及跨平台兼容性&#xff0c;赢得了广泛的关注和应用。 那么要在iOS上…

178K⭐排名第一计算机面试笔记

&#x1f389;据说字节大佬于18年找工作时做的面试笔记&#xff0c;且斩获了bat、字节、华为、网易等大厂offer&#xff0c;该笔记被认为是极具价值的实战经验分享&#xff01; &#x1f310; CS-Notes&#xff0c;它为像我这样的程序员提供了一个全面的计算机科学知识库。这个…

STM32串口接收与发送(关于为什么接收不需要中断而发生需要以及HAL_UART_Transmit和HAL_UART_Transmit_IT的区别)

一、HAL_UART_Transmit和HAL_UART_Transmit_IT的区别 1. HAL_UART_Transmit_IT&#xff08;非阻塞模式&#xff09;&#xff1a; HAL_UART_Transmit_IT 是非阻塞的传输函数&#xff0c;也就是说&#xff0c;当你调用 HAL_UART_Transmit_IT 时&#xff0c;它不会等到数据完全发…

基于微信小程序的校园二手交易平台系统设计与开发ssm+论文源码调试讲解

第2章 程序开发技术 2.1 Mysql数据库 为了更容易理解Mysql数据库&#xff0c;接下来就对其具备的主要特征进行描述。 &#xff08;1&#xff09;首选Mysql数据库也是为了节省开发资金&#xff0c;因为网络上对Mysql的源码都已进行了公开展示&#xff0c;开发者根据程序开发需…

Pyside6 --Qt设计师--简单了解各个控件的作用之:Buttons

目录 一、BUttons1.1 包含1.2 不同按钮的解释 二、具体应用2.1 Push Button2.2 Tool Button2.3 Radio Button2.4 Check Box2.5 Command Link Button2.6 Dialog Button Box2.6.1 直接显示代码如下2.6.2 可以修改ok&#xff0c;cancel 的内容 今天学习一下工具箱里面的Buttons&am…