Я разрабатываю сайт банка изображений, который будет содержать бесплатные изображения для скачивания. Я хочу замедлить любого, кто использует бота или загружает слишком часто, поэтому у меня есть дневной лимит файлов, и я включил переменную сна в скрипт, который доставляет файлы. Я делаю это, записывая время завершения последней загрузки в базу данных, а затем проверяя прошедшее время, когда начинается следующая загрузка. Если это меньше N секунд, я задерживаю загрузку на M секунд, удваивая M при последовательных нарушениях. Это работает нормально, пока скрипт не достигнет предела времени выполнения сервера.
Моя хостинговая компания подтверждает, что время сна засчитывается в счет времени выполнения.
Не слишком ли я осторожен на этапе разработки?
Любые предложения о том, как обнаружить и замедлить пользователей, злоупотребляющих сайтом, без использования php sleep?