Domanda

Sono interessato a sapere come funziona una restrizione chiave API basata su URL, come quella utilizzata da Google per proteggere il suo servizio Google Maps.

Da quello che ho capito da questo articolo " Limitazione dell'accesso all'Ajax Servizi , " ci sono due parti coinvolte: prima dove il servizio crea una chiave specifica per un dato dominio, usando una funzione hash unidirezionale; e in secondo luogo dove il servizio convalida la chiave in base all'intestazione Referer.

Mentre l'articolo è abbastanza esplicativo, ho ancora un problema cercando di capire quanto sia sicuro il metodo di validazione. Voglio dire, se la chiave è selezionata solo rispetto al referer, non è abbastanza facile da forgiare? Sto pensando che un semplice "127.0.0.1 www.mydomain.com" nel file hosts sarà sufficiente per ingannare la convalida e pensare che il referer sia www.mydomain.com.

Potrei aver frainteso alcune cose e alcuni chiarimenti saranno apprezzati.

È stato utile?

Soluzione

Le " Limitazioni " la sezione dell'articolo che citi menziona specificamente la possibilità di falsificare il referrer.

La modifica del file host potrebbe effettivamente essere sufficiente per creare il tuo referrer, ma solo quando accedi al sito dal tuo computer . Ciò significa che è possibile abusare della licenza solo durante i test in locale. Questo non è un abuso molto interessante.

Per pubblicare la tua app, dovresti falsificare il referrer sui browser tutti , a meno che tu non stia utilizzando l'API da un eseguibile eseguito localmente, nel qual caso probabilmente ti trovi pieno controllo di tutte le intestazioni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top