twitededibox Comment mettre en place une limite de connexion par ip avec Memcached


Pour faire suite à l'affaire du vol de mots passe sur Twitter, et afin de limiter le nombre de tentatives de login erronées sur leur service web, l'équipe technique de Twitter a mis en place une stratégie plutôt intéressante pour limiter les requêtes à l'API.

On peut facilement bloquer des tentatives d'intrusion par bruteforce mais cela demande beaucoup de ressource serveur car il faut surveiller chaque tentative de log et l'écrire dans la base de données, ce qui est un peu chaud en terme de performance sur de gros sites comme Twitter. Du coup, la technique que Twitter a adopté se passe au niveau du gestionnaire de cache Memcached.

Avec Memcached, il est en effet possible de surveiller le nombre de requêtes par IP sur vos formulaires ou vos scripts et de bloquer celles-ci, si les hits sont trop rapprochés. (Donc dans une logique de bruteforce)

Tout se passe au niveau du compteur ratelimit de memcached qui s'incrèmente jusqu'à atteindre 10 par exemple...  Au dela de 10 tentatives, l'attaquant n'a plus accès au site. Pas con, le Jean-Pierre, hein ?

C'est un peu technique, il y a du code en python et un bout de perl en exemple et je n'ai malheureusement pas encore trouvé l'exemple qui me permettrait de brancher ça avec du PHP mais tout est là... Je me suis dit que ça en intéresserait certains.

+ d'infos ici

Vous avez aimé cet article ? Alors partagez-le avec vos amis en cliquant sur les boutons ci-dessous :

Pinterest Twitter Facebook Google Plus Linkedin email Flattr ! Bitcoin DogeCoin