保护 Google Maps JavaScript API 密钥

Protecting Google Maps JavaScript API key

本问题已经有最佳答案,请猛点这里访问。

我是 javascripts 的新手。我正在使用 Google Maps JavaScript API 在我的网站中包含自动完成功能。代码需要 API 密钥才能执行。

1
<script src="https://maps.googleapis.com/maps/api/js?key=MY_API_KEY&libraries=places">

我想保护这个 API 密钥,因为它是公开的,任何人都可以在浏览器上使用 view page source 查看我的 JavaScript 代码。

如何保护此 API 密钥使其不被公开??


由于您将在前端应用程序的 Javascript 中使用此密钥,因此没有万无一失的方法来保护它。

您可以做的最好的事情是使用基于 Referer 标头的应用程序限制来限制您的 api 密钥,并将 API 限制仅限于 Maps API。

https://developers.google.com/maps/documentation/javascript/get-api-key#restrict_key

https://cloud.google.com/docs/authentication/api-keys#adding_http_restrictions

这使得其他应用程序很难伪装成您的应用程序,因为模仿Referer 标头并非易事,特别是来自前端应用程序。

https://security.stackexchange.com/questions/152066/what-is-the-point-of-restricting-a-google-api-key-by-http-referer


Google 地图有多种 API 密钥。

Browser / Javascript 键用于获取 JS / 前端库,可以使用。

只需确保您使用的是浏览器密钥,可在此处找到:https://developers.google.com/maps/documentation/javascript/get-api-key

您可以进一步添加安全限制以防止密钥在其他地方使用。您也可以通过域、IP 地址、android、ios 应用程序进行限制。

注意,服务器端的密钥应该是私有的。