8791 sujets

Développement web côté serveur, CMS

Bonjour,

Je cherche un moyen pour limiter les requêtes SQL en un temps donné, pour empêcher les visiteurs de changer rapidement de page, les bloquer, voire les bannir pendant un petit moment s'ils insistent beaucoup.
J'ai déjà vu cela quelque part, mais je ne sais vraiment pas comment ça fonctionne.

Merci d'avance pour votre aide
Modifié par smartywou (05 Jul 2011 - 12:48)
Je comprends l'intérêt de vouloir soulager le moteur sql ou empêcher le déni de service et lutter contre les bots mais pourquoi brider l'usager normal ?
Un des moyens assez efficace est la mise en cache des pages calculées. Certains CMS s'en servent efficacement ( Modx revo en tout cas)
L'usager "normal" ne sera pas pénaliser par ce système, et il ne remarquera pas son existence.
Je n'arrive toujours pas à comprendre pourquoi certaines personnes ( ou surement des bots ) ouvrent plus de 100 pages en moins d'une minute.
Bonjour,

Il y a plusieurs solutions, comme utiliser des sessions et/ou cookies pour stocker les informations relatives aux recherches. Il y a également moyen de loguer les IP et l'heure des recherches.
Dans un premier temps, la mise en cache, soit de la page complète, soit de certaines requêtes les plus gourmandes soulage efficacement ton serveur. Ca cause un problème de disponibilité ou de réactivité ?
Je détecte plusieurs bots sur le site par semaine, qui change de page rapidement ( 2 voire 3 pages par seconde )
Jusqu'à aujourd'hui, je n'ai pas trouvé un moyen efficace pour les bloquer, il doit existé un script déjà prêt, mais je n'arrive pas à le trouver.

Je ne suis pas un très bon programmeur, mais je vais essayer de le réaliser
Je reprend l'idée de Laurie-Anne :
Voila ce je compte faire
- S'il s'agit d'un nouvel utilisateur, on lance la session.
- Stocker l'adresse ip + l'heure de l'exécution de la page dans une sessions.
- Ensuite, lors de l'exécution d'une autre page par ce même utilisateur, comparer la date, et en fonction de la navigation, voir s'il s'agit d'un bot ou pas, .

Les règles : l'usager aura droit à 2 avertissements, ensuite il sera bloqué pendant un cour instant.
S'il s'agit d'un bot, on stocke l'adresse ip dans la liste des Bot banni.

Je ne sais pas comment fonctionne un anti-bot, mais dite le moi si je trompe.
Modérateur
Bonjour,

Si la session se base sur un cookie, il faut savoir qu'en général, les bots ne les acceptent pas. Ce qui signifie que si le bot consulte 100 pages différentes, il obtiendra 100 sessions différentes. Il n'est pas non plus recommandé de contourner ce problème en passant le id de session dans les urls.

Il est beaucoup plus sage d'optimiser ses requêtes et d'utiliser un système de cache AVANT de mettre en place ce type de protection.
Tony Monast a écrit :

Il est beaucoup plus sage d'optimiser ses requêtes et d'utiliser un système de cache AVANT de mettre en place ce type de protection.


D'accord, je vais voir ce que je peux faire, merci pour le conseil