Tenho o aplicativo Ionic PWA publicado para Android e iOS (usei o Capacitor para gerar a compilação nativa). No código do front-end, ele possui minha chave da API do Google Maps, no entanto, não posso restringi-lo a nenhuma das opções que o Google oferece, porque ...
Referenciadores HTTP - Não está em um nome de domínio público, está em um host local na visualização da web do aplicativo nativo.
http://localhost/
para Android ecapacitor://localhost/
iOS. Não parece muito seguro usá-los como restrições, pois são muito genéricos, e todos os outros aplicativos terão os mesmos.Endereços IP - por razões óbvias.
- Aplicativos Android - não está no código nativo, está em uma visualização na web.
Aplicativos iOS - não está no código nativo, está em uma visualização na web.
Nenhuma dessas opções pode funcionar para a minha situação. Então, como posso proteger minha chave de API de abuso?
Alguma ideia? Não posso ser o único a usar a API do Google Maps em um aplicativo Ionic.
fonte
Respostas:
Você pode configurar o nome do host dos aplicativos capacitores
e depois restrinja as chaves da API a
capacitor://unique-app
https://capacitor.ionicframework.com/docs/basics/configuring-your-app
fonte
Para proteger sua chave de API, você deve verificar o valor de
window.location.href
dentro de uma visualização na web. Eu acho que você verá algo parecidofile://some/path
.Portanto, você precisará aplicar a restrição do referenciador HTTP para esse caminho. Observe que os URLs com um protocolo file: // requerem representação especial, conforme explicado em
https://developers.google.com/maps/documentation/javascript/get-api-key#restrict_key
Eu espero que isso ajude.
fonte