为了不暴露我的Google Map API密钥,最好不要将API密钥包含在Android应用程序存储库本身中。如果API密钥不在应用程序中,我如何使用Google Map?将API密钥存储在服务器中是可行的,那么我是否需要在app init上进行网络调用并请求API密钥?从服务器获取响应后,是否将API密钥存储在共享首选项中?这是我能想到的唯一方法,但如果它存储在共享首选项中,我相信API密钥可以通过逆向工程读取共享首选项中的值来获得。谁能告诉我使用API密钥的安全方法是什么,谢谢。
发布于 2020-06-19 06:28:36
Google Maps Platform文档中介绍了如何在Android应用程序中安全使用Google Maps Platform API密钥:
https://developers.google.com/maps/documentation/android-sdk/get-api-key#restrict_key
诀窍是应用Android应用程序限制,包括应用程序的包名和证书的SHA-1指纹。此限制是在您的Google Cloud控制台中设置的,并且不会在源代码中的任何地方公开。
如果有人试图以未经授权的方式使用你的API密钥,他们将得到一个错误,因为他们需要你的私人证书来使API密钥工作。
因此,如果您正确设置了Android限制,则在源代码中添加API密钥是没有问题的。
此外,我建议您查看API key best practices文章:
https://developers.google.com/maps/api-key-best-practices
我希望我的回答能澄清你的疑问。
https://stackoverflow.com/questions/62454340
复制相似问题