У меня есть веб-приложение php 5.5 с использованием инфраструктуры Symfony2 и вы хотите, чтобы загрузка сервера была минимальной. Несколько страниц на моем сайте позволяют пользователю получить список объектов из базы данных, а один набор имеет несколько сотен тысяч строк и скоро будет более миллиона. Незарегистрированные пользователи могут использовать эту страницу.Предотвратите оскорбительные представления в течение периода времени
Я хочу, чтобы пользователь не выполнял запрос слишком много раз в минуту или какой-то подобный промежуток времени, и видел, как это реализовано на других сайтах, включая stackoverflow для комментариев или голосования.
Как это реализовано? Нужно ли создавать cookie и проверять сеанс на каждой загрузке страницы, чтобы увидеть, были ли использованы конкретные действия, которые я хочу ограничить, и предотвратить отправку формы? Есть ли стандартный способ обработки этого в php, или специально для Symfony2? Я искал это и нашел некоторые подобные вопросы, но никакого конкретного ответа. Это для пользователей прямо на моем сайте, а не с помощью api.
How to throttle API requests using PHP
How do I throttle my site's API users?
Edit:
Я знаю, что печенье не правильный путь, и будет пытаться реализовать механизм, используя кэш. Я использую php 5.5 и читаю, что APC имеет некоторые ошибки с 5.5, поэтому Zend OpCache на самом деле предпочтительнее вместе с APCu. Может ли кто-нибудь показать пример использования Zend OpCache/APCu для регистрации и отслеживания запросов пользователей?
Куки-файлы находятся на стороне клиента. Все, что мне нужно сделать, это отключить их, и я могу спамить вас всем, что хочу (и многие боты не обрабатывают файлы cookie в любом случае) – Machavity
Да, я беспокоился об этом и нуждался в более надежном решении – George
Могли бы вы утвердить ответ, если он хорош ? – skler