2009-03-26 8 views
4

Comment limiter les requêtes par heure d'une adresse IP comme sur Twitter? Par exemple, je veux fournir 100 demandes par heure. y-a-t'il une solution? Des modules Apache? Merci.Demandes limite par heure

Répondre

6

Démarrage simple.

  • Utilisez le concept de clés API (permet de dire est un guid mappé à un domaine ou un compte ).
  • Chaque fois que votre API est atteinte, prenez la clé et incrémentez le compteur correspondant. Ecrire les règles à limiter en fonction de votre compteur (dans ce cas heures)
  • Réinitialiser.

Le blocage par IP est déconseillé. NAT étant le problème

0

Ne le faites pas par IP. Les gens de toute une université, une entreprise ou un cybercafé peuvent partager la même adresse IP. Il est préférable d'injecter un cookie avec une valeur aléatoire dans la première réponse http pour chaque client afin d'identifier l'unicité.

+3

Facile à contourner cependant. – Sam152

+0

@ Sam152: l'unicité par cookie? Absolument. Connaissez-vous d'autres moyens de garantir l'unicité de l'utilisateur? – cherouvim

+0

Je ne souhaite pas entrer de limites pour tous les utilisateurs et toutes les pages, mais uniquement pour les pages API spécifiques (xml, json, etc.). Je veux dire, seuls les robots vont accéder à ces pages. Je suppose que c'est trop difficile pour un humain de lire du XML ou du JSON. ;-) Merci pour votre réponse! –