Si trop de requests bannir

cs_sterkasor Messages postés 53 Date d'inscription dimanche 25 janvier 2004 Statut Membre Dernière intervention 11 juin 2007 - 25 mars 2007 à 14:07
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 - 27 mars 2007 à 18:30
Bonjour,

J'ai reussi a mettre en place un systeme de ban, il arrive a bannir les aspirateur de site avec un lien invisible ,
ce que je n'arrive pas a le faire: si un visiteur flood le site par exemple, avec un code je veux rediriger cet IP vers mon system de ban "/ban.php" qui est deja prensent sur mon site.

Explications:

par exemple une IP en une minute s'il a envoyer plus de 40 requests cet IP vas etre rediriger vers /ban.php

Merci d'avance pour vos idees et votre aide!

SS.

9 réponses

FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
25 mars 2007 à 18:57
Tu prends son ip, tu mets un compteur en session.
Ton compteur contiendra la date en millisecondes à chaque request.

Et tu compares à chaque fois.
0
cs_sterkasor Messages postés 53 Date d'inscription dimanche 25 janvier 2004 Statut Membre Dernière intervention 11 juin 2007
25 mars 2007 à 19:03
Merci FhX,
je connais pas asser bien le php
peut-tu me donner un exepmple de code?

Merci
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
26 mars 2007 à 11:35
Salut,

en session... fais juste sauter le cooki et tu peux reflooder...

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
26 mars 2007 à 12:52
wai exact, je m'en suis rendu compte après l'écriture du post.

Utilise une base de donnée en conservant l'adresse IP.
Inscrit chaque "hit" d'une page dans ta base avec un timestamp.

Et après, tu fais un COUNT() dans un interval de temps. Si ton COUNT() dépasse une certaine limite, tu peux le bannir.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_sterkasor Messages postés 53 Date d'inscription dimanche 25 janvier 2004 Statut Membre Dernière intervention 11 juin 2007
26 mars 2007 à 21:28
je vois que il faut etre un pro pour demander de l'aide sur ce forum.

merci quand meme
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
26 mars 2007 à 21:36
Salut,

.... sterkasor, t'es vennu sur le chat sans reelle question, tu viens ici en poses une et nous prend pour des cons....

je reposes ma question, tu cherches quoi au fond ???

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
cs_sterkasor Messages postés 53 Date d'inscription dimanche 25 janvier 2004 Statut Membre Dernière intervention 11 juin 2007
26 mars 2007 à 21:51
coucou747,

je ne vois pas de quoi tu parles a propos d'aller sur le chat
je prends personne pour un cons

en reponse a ta question:

j'ai un souci, mon site se fait spammer depuis presque un moi (specialement dans la journee) je recois de milliers requets sur mon site, je cherche une solution et j'ai pose ma question mais en reponse vous m'avez repondu d'une langage pro alors je suis pas un debutant vrai en php et je ne sais pas comment faire sauter un cookies.

merci
0
cs_sterkasor Messages postés 53 Date d'inscription dimanche 25 janvier 2004 Statut Membre Dernière intervention 11 juin 2007
26 mars 2007 à 21:52
pardon je voulais dire "debutant"
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
27 mars 2007 à 18:30
mais en reponse vous m'avez repondu d'une langage pro

Utilise une base de donnée en conservant l'adresse IP.
Inscrit chaque "hit" d'une page dans ta base avec un timestamp.

Et après, tu fais un COUNT() dans un interval de temps. Si ton COUNT() dépasse une certaine limite, tu peux le bannir.

C'est trop "pro" ca ?

Incrémenter à chaque appel de page un compteur dans une base SQL, et faire un SELECT dans un intervalle de temps de tous tes appels de page regroupé par IP ?
L'aide pour le SELECT :

SELECT .... FROM .... WHERE date BETWEEN UNIX_TIMESTAMP( NOW() ) - 60 AND UNIX_TIMESTAMP( NOW() ) AND ip = $ip.

Quelque chose dans le style ! C'est pas compliqué pourtant :)
0
Rejoignez-nous