PROJET AUTOBLOG


Shaarli - le hollandais volant

Site original : Shaarli - le hollandais volant

⇐ retour index

La sécurité de vos logiciels [Wiki de sebsauvage.net] - Liens en vrac de sebsauvage

jeudi 16 décembre 2021 à 16:51

Diantre :-o.

Une autre solution de protection en PHP serait de rajouter un délais aléatoire avant chaque requête critique :

usleep(0, random(0, 1000));

Ce code, d’une seule ligne ajoute un délais d’attente compris entre 0 et 1 000 microsecondes. Au max c’est 1 ms, donc imperceptible à l’échelle de la navigateur, et c’est en tout cas nettement plus long que le temps de comparaison de deux chaînes de caractères par un serveur (qui ne doit pas excéder quelques dizaines de nanosecondes, une centaine à la limite).

Et si l’on veut faire comme le fait NextCloud, il suffit de compter les requêtes et faire :

usleep(0, ($nb_req * 500000 + random(0, 1000)));

La première requêtes fera comme le premier code ($nb_req = 0).
Ensuite, ça rajoutera 500 ms à chaque requêtes. C’est supportable en cas d’erreur humaine (qui fera au max 2 ou 3 essais avant de chercher le problème ou de laisser tomber), mais si on crée un bot/script qui balance 1000 requêtes, ça fera déjà près d’une minute d’attente au bout de la 100e requête, ce qui n’est plus viable.


— (permalink)