web-dev-qa-db-fra.com

Techniques pour empêcher les applications de détourner mon moteur de recherche?

Je travaille sur un site contenant une grande base de données sur le contenu musical. Récemment, un développeur d’applications à la recherche d’un coup de pouce pour améliorer sa réputation a lancé une application totalement intégrée à notre base de données: un utilisateur recherchera une piste dans l’application, le app enverra la demande à notre page de recherche et gratter les résultats, renvoyant le premier résultat à l'utilisateur. Voici quelques choses que j'ai essayées:

  • Renvoyer 444 pour l'agent utilisateur de l'application (mais ils l'ont changé en une chaîne de navigateur légitime).
  • Détecter un référent sur la page de recherche et renvoyer 404 si aucun référent n’est trouvé (mais il serait assez facile pour eux d’en usurper un).

Une idée à laquelle j'ai pensé est une sorte de jeton envoyé avec la requête de recherche sur n'importe quelle page contenant le champ de recherche. Le résultat de la recherche valide ce jeton et, s'il est invalide, renvoie 404. Existe-t-il des techniques éprouvées permettant de le faire? sorte de chose? Ou tout ce que je peux faire pour empêcher ce voleur de données? Il vole complètement nos données et paralyse notre site!

En passant, j'utilise Django, au cas où quelque chose intégré à cela pourrait m'aider.

3
benwad

Votre idée de jeton fonctionnerait. Vous pouvez le changer périodiquement pour le rendre plus difficile.

Vous pouvez également modifier les paramètres de votre formulaire de recherche. Commencez par utiliser s= au lieu de q= pour le terme recherché. Cela obligerait ce développeur à suivre ces changements.

Vous pouvez également implémenter Captcha et ne pas afficher les résultats de la recherche à moins que l'utilisateur ne prouve qu'il s'agit d'un humain. Google vient de lancer une version de recaptcha qui n'est qu'une case à cocher: http://googleonlinesecurity.blogspot.hu/2014/12/are-you-robot-introducing-no-captcha.html

1
Stephen Ostermiller