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 密钥,因为它是公开的,任何人都可以在浏览器上使用
如何保护此 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 应用程序进行限制。
注意,服务器端的密钥应该是私有的。