J'ai une application web php 5.5 en utilisant le framework Symfony2 et je souhaite que la charge du serveur reste au minimum. Quelques pages sur mon site permettent à l'utilisateur de récupérer une liste d'objets d'une base de données et un ensemble a plusieurs centaines de milliers de lignes, et sera bientôt plus d'un million. Les utilisateurs non enregistrés peuvent utiliser cette page. Je veux empêcher l'utilisateur d'effectuer une requête trop de fois dans une minute ou dans une période de temps similaire et l'ai vu mis en œuvre sur d'autres sites Web, y compris stackoverflow pour les commentaires ou le vote.Empêcher les soumissions abusives dans la période de temps
Comment cela est-il implémenté? Dois-je créer un cookie et vérifier la session sur chaque chargement de page pour voir si les actions spécifiques que je veux limiter ont été utilisées et empêcher la soumission du formulaire? Existe-t-il un moyen standard de gérer ceci en php, ou spécifiquement pour Symfony2? J'ai cherché ceci et ai trouvé quelques questions semblables, mais aucune réponse spécifique. Ceci est pour les utilisateurs directement sur mon site et ne pas utiliser une API.
How to throttle API requests using PHP
How do I throttle my site's API users?
Edit:
Je sais que les cookies ne sont pas la bonne façon d'aller va essayer de mettre en place un mécanisme à l'aide d'un cache. J'utilise php 5.5 et ai lu que APC a quelques bugs avec 5.5, donc Zend OpCache est réellement préféré avec APCu. Quelqu'un peut-il montrer un exemple d'utilisation de Zend OpCache/APCu pour consigner et suivre les demandes des utilisateurs?
Les cookies résident du côté client. Tout ce que je dois faire est de les désactiver et je peux vous spammer tout ce que je veux (et de nombreux robots ne gèrent pas les cookies de toute façon) – Machavity
Oui, je m'inquiétais de cela et j'ai besoin d'une solution plus robuste – George
pouvez-vous approuver la réponse si c'est bon ? – skler