Почему хорошая защита от наводнений для моего сайта перенаправляет в странных случаях?

У меня есть он после защиты от наводнений для моего сайта php:

<?php
if (!isset($_SESSION)) {
    session_start();
}
// anti flood protection
if ($_SESSION['last_session_request'] > time() - 2){
    // users will be redirected to this page if it makes requests faster than 2 seconds
    echo "Stay out!";
    exit;
}
$_SESSION['last_session_request'] = time();

?>

Он работает нормально, потому что сайт стал стабильным после того, как я добавил (15 дней назад), но есть проблема. Чтобы понять проблему, вы можете перейти на атакованный веб-сайт ( http://www.lamejortoros.com/) и увидите:

Если вы находитесь на главной странице или кликаете в одной из статей, она хорошо ориентируется.

НО

Если вы зайдете в раздел Cronicas, Contactenos или Miembros, он показывает: не входите!

Я хочу понять, почему это происходит и, если возможно, как это решить?

Благодарю.

1 ответ

Сделайте следующие шаги:

  1. Установите firebug (или, если ваш браузер использует процесс отладки, используйте его).
  2. Откройте вкладку "Сеть" (чтобы увидеть, что происходит на сервере).
  3. Посмотрите, что происходит, когда вы нажимаете эти ссылки.

Что происходит, так это то, что вы дважды заходите на свой сайт. Сначала он перенаправляет на 301, а затем на реальную страницу. Причинение это считается за 2 посещения, таким образом, провал. Вы можете решить эту проблему, увеличив количество посещений, которые вы считаете ботом.

Имо, вы делаете это неправильно. Защита от DDOS должна быть на уровне сервера, а не на уровне сценария. Я могу отключить куки, и вы заходите на ваш сайт столько раз, сколько я хочу, без проблем. Кроме того, боты не хранят куки, поэтому каждый раз, когда у них есть новый сеанс.

Другие вопросы по тегам