Теперь есть предмет, который можно взять разными способами. Надеюсь, я смогу ее обфусцировать, когда опишу свою проблему и начну получать предложения.
Я занимаюсь разработкой сайта, который заменит существующий. Исторически одной из проблем, с которыми мы сталкивались, являются боты-пауки, которые засыпали весь контент. Теперь мы не против того, что контент загружается. На самом деле, мы рады этому, однако некоторые загрузчики и ускорители загрузки оказались проблемными с текущим сайтом.
То, что я ищу, это что-то, чтобы сидеть в начале моего php, который запускается в основном первым. Он берет отпечаток запроса страницы (ip, реферер, uri запроса, куки, идентификатор сеанса и т. Д.) И передает его ... чему-то. Это что-то сравнивает отпечаток пальца с отпечатками пальцев в последнюю секунду или три. Затем он возвращает сообщение на основе некоторого предварительно настроенного порога, что делать с запросом.
Некоторые пороги:
- Пользователь запросил> x страниц за последние 0.n секунд.
- Пользователь запросил ту же страницу за <0.n секунд. </li>
- Пользователь отправил идентичные данные в форму за последние n секунд.
Итак, вы видите, что я смотрю на довольно узкие окна. Возможно ли обнаружить такие вещи? Смогу ли я сделать это с каким-либо источником данных в виде файла или базы данных? Все, что я использую для хранения отпечатков пальцев между загрузками страниц, будет испытывать значительный отток, поскольку большая часть данных будет храниться в течение одной или двух секунд. Должен ли я иметь что-то, что анализирует логи apache для проверки на порог? Должен ли я искать какой-то внешний демон, который на секунду или две хранит в памяти данные, которые я могу вызвать из скрипта? Есть ли в apache что-то, что может с этим справиться, и мне просто нужно откинуться на сервер, чтобы справиться с этим?
Предполагая, что это то, что я могу сделать в PHP или что-то вроде внешнего демона, как мне реагировать на поведение вне пределов? Моя интуиция говорит HTTP-ответы, что-то вроде 408 или 503, но моя интуиция часто ошибочна. Что я могу сделать, чтобы сказать клиенту немного отступить? Какая-то страница "Woah there"?