Я хотел бы интегрировать скрипт, который позволит избежать атаки DDos в проекте Symfony. Хотя я пытался создать прослушиватель событий, чтобы выполнить работу, мне это не удалось.
Ниже созданный скрипт в слушателе symfony2:
public function onKernelRequest(GetResponseEvent $event) {
$session = $this->requestStatck->getCurrentRequest()->getSession();
if (!$event->isMasterRequest()) {
// don't do anything if it's not the master request
return;
}
if($session->get('last_session_request') > time() - 2 ){
die('DDos attack');
}
$session->set('last_session_request', time());
}
Это вызывает у меня некоторые проблемы при просмотре страницы, такие как отсутствие стиля страницы, отсутствие js, ..
Я работаю с Symfony2 версии 2.7.7
Я с нетерпением жду решения.
Спасибо.
Бросить исключение вместо die
в вашем коде:
use Symfony\Component\HttpKernel\Exception\HttpException;
// ...
if($session->get('last_session_request') > time() - 2 ){
throw new HttpException('DDos attack', 403); // Return a 403 Forbidden
}
Других решений пока нет …