2009-06-21 5 views
4

Je suis curieux de savoir comment fonctionne une restriction de clé API basée sur une URL, comme celle utilisée par Google pour protéger son service Google Maps. D'après ce que je comprends de cet article "Restricting Access to Ajax Services", il y a deux parties impliquées: d'abord où le service crée une clé spécifique pour un domaine donné, en utilisant une fonction de hachage unidirectionnelle; et la seconde où le service valide la clé en fonction de l'en-tête Referer.Clé de l'API basée sur l'URL Restriction: Comment fonctionne la validation?

Alors que l'article est assez explicite, j'ai toujours un problème en essayant de comprendre à quel point la méthode de validation est sûre. Je veux dire, si la clé n'est vérifiée que par rapport au referer, n'est-ce pas assez facile à forger? Je pense qu'un simple "127.0.0.1 www.mydomain.com" dans le fichier hosts sera suffisant pour tromper la validation, et pense que le referer est www.mydomain.com.

J'ai peut-être mal compris certaines choses et quelques précisions seront appréciées.

+0

Il semble que votre lien soit mauvais. Si vous avez une chance de le corriger, je vais jeter un coup d'oeil! –

Répondre

1

La section "Limitations" de l'article que vous citez spécifiquement mentionne la possibilité d'usurper l'identité du référant.

La modification du fichier hôte peut en effet suffire à forger votre référent, mais uniquement lorsque vous accédez au site à partir de votre propre ordinateur. Cela signifie que vous pouvez abuser de la licence uniquement lors de tests locaux. Ce n'est pas un abus très intéressant.

Pour publier votre application, vous aurez besoin d'usurper le referrer sur navigateurs tout le monde, à moins que vous utilisez l'API à partir d'un exécutable exécuter localement, dans ce cas, vous êtes probablement en plein contrôle de tous les en-têtes.

+0

Je comprends maintenant. Mais, je pense, si la clé API est utilisée pour écrire des données sur un service, dire comme un outil de suivi analytique tel que Google, quelqu'un pourrait utiliser un en-tête modifié sur leur propre ordinateur pour injecter de fausses données dans le service. Pratiquement je ne vois pas trop de contrefaçons de ce genre, mais théoriquement c'est possible, je pense. Merci pour votre temps, votre réponse et pour avoir corrigé mon lien. – ivb

Questions connexes