Ich habe die Ionic PWA-App für Android und iOS veröffentlicht (ich habe Capacitor verwendet, um den nativen Build zu generieren). Im Frontend-Code befindet sich mein Google Maps-API-Schlüssel. Ich kann ihn jedoch nicht auf eine der von Google angebotenen Optionen beschränken, da ...
HTTP-Verweise - Es handelt sich nicht um einen Public Domain-Namen, sondern um einen lokalen Host in der Webansicht der nativen App.
http://localhost/
für Android undcapacitor://localhost/
für iOS. Es scheint nicht sehr sicher zu sein, diese als Einschränkungen zu verwenden, da sie sehr allgemein gehalten sind und alle anderen Apps dieselben haben.IP-Adressen - Aus offensichtlichen Gründen.
- Android Apps - Es befindet sich nicht im nativen Code, sondern in einer Webansicht.
iOS Apps - Es befindet sich nicht im nativen Code, sondern in einer Webansicht.
Keine dieser Optionen kann für meine Situation funktionieren. Wie kann ich meinen API-Schlüssel vor Missbrauch schützen?
Irgendwelche Ideen? Ich kann nicht der einzige sein, der die Google Maps-API in einer Ionic-App verwendet.
quelle
Antworten:
Sie können den Hostnamen von Kondensator-Apps konfigurieren
und beschränken Sie dann die API-Schlüssel auf
capacitor://unique-app
https://capacitor.ionicframework.com/docs/basics/configuring-your-app
quelle
Um Ihren API-Schlüssel zu schützen, müssen Sie den Wert von
window.location.href
in einer Webansicht überprüfen. Ich denke du wirst so etwas sehenfile://some/path
.Daher müssen Sie für diesen Pfad eine HTTP-Referrer-Einschränkung anwenden. Beachten Sie, dass URLs mit einem file: // -Protokoll eine spezielle Darstellung erfordern, wie in erläutert
https://developers.google.com/maps/documentation/javascript/get-api-key#restrict_key
Ich hoffe das hilft.
quelle