Restrição URL-Based API Key: Como é que funciona de validação?
-
06-07-2019 - |
Pergunta
Estou interessado em saber como funciona um baseados em URL chave de API de restrição, como o usado pelo Google para proteger o seu serviço Google Maps.
Pelo que eu entendo a partir deste artigo " restringir o acesso ao Ajax Serviços ", existem duas partes envolvidas: primeiro, onde o serviço cria uma chave específica para um dado domínio, utilizando uma função hash unidireccional; e segundo, onde o serviço valida a chave com base no cabeçalho Referer.
Enquanto o artigo é bastante explicativo, eu ainda tenho um problema tentando entender o quão seguro é o método de validação. Quer dizer, se a chave está marcada apenas contra o referer, não é isso muito fácil de forja? Estou a pensar que um simples "127.0.0.1 www.mydomain.com" no arquivo de hosts será suficiente para enganar a validação, e acho que o referer é www.mydomain.com.
Eu poderia ter entendido mal algumas coisas e alguns esclarecimentos será apreciado.
Solução
A secção "Limitações" do artigo que você citar especificamente menciona a possibilidade de spoofing a referência.
A alteração do arquivo host pode realmente ser o suficiente para forjar a sua referência, mas só quando você está acessando o site a partir de seu próprio computador . Isso significa que você pode abusar da licença só ao testar localmente. Isso não é abuso muito interessante.
Para publicar seu aplicativo, você precisa para falsificar a referência no todos navegadores, a menos que você está usando a API de um localmente executar executável, caso em que você está provavelmente em controle total de todos os cabeçalhos.