Мы работаем на сайте Laravel 4.2. Это просто новостной сайт и не имеет аутентификации пользователя.
С субботы на прошлой неделе нас начали наводнить сомнительные запросы, которые обрушили сайт.
Для предотвращения ложных запросов мы установили Apache mod_evasive (http://www.helicontech.com/ape/doc/mod_evasive.htm) безуспешно. Мы также попробовали fail2ban (http://www.fail2ban.org/) безуспешно.
На данный момент мы рассматриваем возможность сделать это от самого Laravel. Наш поиск дал http://culttt.com/2015/12/28/dealing-with-brute-force-attacks-in-laravel/ но, похоже, есть вопросы о его эффективности.
Далее мы рассматриваем возможность обновления до Laravel 5 и использования дросселирования (https://laravel.com/docs/5.2/authentication#authentication-throttling) но понял, что это работает только с аутентификацией / логинами, которых у нас нет.
Есть ли способ использовать троттлинг Laravel без логинов? В основном, нам нужно защитить контроллеры. Перед передачей запроса в контроллеры мы должны убедиться, что это не DoS или DDoS.
Есть несколько инструментов, чтобы предотвратить это. Не уверен на пути Laravel, но это больше касается решения на уровне Apache или DNS. Лично я считаю, что этот плохой трафик должен быть заблокирован до того, как он достигнет нашего приложения или даже лучше нашего сервера. Как только он достиг нашего сервера / приложения, он уже съел ресурсы, даже если мы дали плохой ответ на этот трафик
Используйте Fail2Ban для анализа журналов Apache, и он автоматически идентифицирует плохие IP-адреса и блокирует их. обращаться этот
Вы можете быстро решить эту проблему, подписавшись на платную услугу, чтобы заблокировать это на уровне DNS. Одна вещь, которую я могу снять, CloudFlare DDOS Защита
Других решений пока нет …