Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
CONTEXT :
Je possède une application web en Zend, mais qui est utilisée uniquement côté serveur à des fins de webservices.
Afin de séparer complètement la UI du Serveur, la création d'un user se fera par example en appelant (ajax)
monsite.com/webservices/create_user?login=....
PROBLEME :
Sauf que d'un point de vue sécurité (entendre par là surcharge du serveur etc, car il n'y a pas de faille à proprement parler), il est facile pour n'importe qui de faire un
while(true) monsite.com/webservices/create_user?login=....
et bim non seulement j'ai 1 million de users dans ma base, mais en plus je pense que le serveur va craquer avant....
MA PROPOSITION :
J'ai donc pensé à une solution pour temporiser les requêtes. Dans chaque action de mes controller, mettre une vérification du type :
$s->setExpirationSeconds(5, 'key');
(Cf session expiration)
Ce qui permettrai d'empêcher 2 fois la même action à moins de 5 secondes d'intervalle.
Sauf que ce que je n'aime pas dans cette solution :
1- 5 sec c'est peut etre un peu court. Mais si je met plus long, ben ca pénalisera les vrais users. Car on peut très bien remplir le formulaire de création de compte, s'être trompé, corriger le champ et renvoyer en moins de 5 sec...
2 - Quelqu'un qui fait un while(true) mettra plus de temps mais ca n'empechera pas d'avoir quand meme 1 million de nouveau user.
3 - Y a-t-il un moyen avec zend de détecter un comportement frauduleux, et de bloquer l'IP dans l'htaccess ou quelque chose du genre ?
Merci à la communauté pour vos réponses.
Dernière modification par kanak09 (01-01-2014 17:37:37)
Hors ligne