2010-11-27 6 views
3

J'ai une API Web que je veux autoriser n'importe quel domaine pour soumettre des données à. Cependant, pour éviter les faux spams, je veux trouver un moyen de m'assurer qu'une requête indiquant que le domaine provient de provient effectivement de ce domaine et que quelqu'un n'essaie pas de me tromper en postant sur un autre nom de domaine.Comment vérifiez-vous qu'une requête API provient d'un certain domaine?

Par exemple, si http://example.com soumet certaines données - c'est bien. Si le script kiddie # 237 soumet des données prétendant être example.com - c'est mauvais. Au début, j'allais utiliser un système de clé secrète pour signer chaque requête HMAC - mais l'inscription sera ouverte, gratuite et automatisée pour cette API. Je ne sais pas comment je pourrais dire si PersonA ou PersonB possède vraiment http://example.com et mérite la clé API.

+0

Distribuez la clé API liée à un domaine. Vous vérifiez ensuite la clé et assurez-vous que la requête provient d'un domaine valide. Votre clé doit être un hachage salé du domaine pour lequel la clé est valide. Juste mes 0,02 $. –

Répondre

2

Fournissez un fichier de clé qu'ils devront télécharger sur ce domaine. Et vous vérifiez l'existence et les données valides contre votre base de données interne.

+1

Excellente idée, j'ai oublié à ce sujet mais même Google utilise cette approche. Je serais bien cependant s'il y avait une réponse qui n'impliquait pas de faire des requêtes HTTP à vérifier cependant. Peut-être un jour. http://code.google.com/apis/accounts/docs/RegistrationForWebAppsAuto.html – Xeoncross

Questions connexes