Temporiser l'accès à un script

Castor Gaspard
Invité n'ayant pas de compte PHPfrance

20 févr. 2010, 18:53

Bonjour,

Il y a quelques années, j'avais trouvé un script en Php qui permettait de "temporiser" l'accès à une page. De mémoire, lorsque une adresse Ip demandait l'exécution du script, elle était bloquée pour éviter les nouvelles requêtes pendant un délai déterminé. A chaque nouvelle tentative, ce délai était multiplié par deux. J'avais trouvé l'idée intéressante pour remplacer les Captcha et autres tests de Turing malcommodes.

Hélas, j'ai parcouru Internet dans tous les sens, et ma requête n'a pas abouti.

Sauriez-vous où je pourrai remettre la main sur ce script ?

Merci.

Castor Gaspard

ViPHP
AB
ViPHP | 5818 Messages

20 févr. 2010, 19:18

En php il y a la fonction sleep() qui peut temporiser l'exécution d'un script.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

20 févr. 2010, 22:48

Je crois que l'idée ici serait plus de réaliser un script php permettant de stocker l'ip de l'utilisateur et l'heure de la demande (en base, session ou autre). Il suffirait alors de tester avant l'exécution des pages php la présence de l'ip et l'heure de la dernière requête pour poursuivre ou non l'exécution...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Mammouth du PHP | 985 Messages

21 févr. 2010, 03:56

Tout à fait et ce n'est pas très compliqué à faire en plus.
Et c'est plutôt efficace.
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

ViPHP
AB
ViPHP | 5818 Messages

21 févr. 2010, 04:45

Oui mais le pb avec la solution avec l'ip c'est que cela n'autorise pas plusieurs utilisateurs derrière un même proxy. Ils seront tous bloqués de la même manière même si les utilisateurs sont différents.

J'utilise souvent sleep avec une tempo de 2 secondes pour décourager les tentatives de hack brut force pour l'authentification dans une session administrateur. Cela me garanti au moins qu'un pirate ne pourra pas faire plus d'une tentative toute les deux secondes. En complément une variable de session mémorise le nombre de tentatives à trois essais après quoi il faut se déconnecter du site puis se reconnecter pour remettre le compteur à zéro.

Evidemment c'est un compromis par rapport à la solution de l'IP car je ne voulais pas faire attendre un temps X si l'administrateur s'est réellement trompé trois fois de suite.

Difficile de trouver une solution idéale ...

Castor Gaspard
Invité n'ayant pas de compte PHPfrance

26 févr. 2010, 00:28

Bonjour,

Pardon pour les remerciements tardifs : vos contributions m'ont donné quelques idées.

Cordialement,

Gaspard