Google Maps API适用于Android和iOS "Unlimited free usage",但仅限于涉及各自的原生SDK。这允许开发人员在其(白名单)应用程序中嵌入Maps API密钥,而不会产生任何财务/运营后果。
对于针对Android / iOS构建的Hybrid(Cordova)应用程序,必须使用密钥才能在WebView中使用Maps API:
<script src="https://maps.google.com/maps/api/js?v=3.24&key=API_KEY_HERE&libraries=places"></script>
但是密钥确实有一个配额,因为“每天最多可以免费加载25,000个地图”。这允许某人对混合应用进行逆向工程,系统地滥用给定的API密钥,并削弱这些混合应用的操作。这也适用于高级计划中的API密钥,攻击者可能会通过重复的API请求浪费开发人员的资金。
自the referer
is empty inside a WebView以来,我无法通过API密钥的凭据部分将给定引荐者列入白名单。我也无法操纵脚本标记的referer
,即使它是在文档的<head>
中动态注入的。
如何为我的软件包创建一个免费的JS Maps API密钥(例如com.example.foo)?