Как защититься от скачивания сайта целиком

Возникла такая странная проблема: у меня виртуальный выделенный сервер с довольно ограниченными ресурсами. Иногда сайт начинает сильно тормозить. Смотрю в логи, а там кто-то с одного ip скачивает весь сайт.

Я научился банить таких черех .htaccess так:
Deny from 123.45.67.89
Deny from 123.46

Но хотелось бы настроить сервер так, чтобы он не отдавал все процессы одному ip. Это возможно?

Смотрите также

Ответы

Не уверен, что вообще имеет смысл банить такие IP.

* Возможно этот IP выдаётся динамически. Тогда при следующем соединении на этом адресе будет сидеть добросовестный пользователь, который будет лишён возможности зайти на ваш сайт. А злоумышленник может попасть на соседний адрес.

* Некоторый провайдеры не предоставляют пользователям выделенного IP, давая один адрес на целое сообщество. Заблокировав такой IP вы теряете аудиторию целого города.

Конечно же, если у вас сайт для людей.

Ок, а как быть?

Если используется nginx, то можно ограничить количество одновременных подключений с одного ip-адреса. Для этого нужно отредактировать конфиг /usr/local/etc/nginx/nginx.conf , добавив в структуру limit_zone и limit_conn:

http {
  ...
  limit_zone   one  $binary_remote_addr  10m;
  ...
  server {
    location /download/ {
      ...
      limit_conn   one  3;
      ...
    }
  }
}

В приведенном примере разрешено не более 3 одновременных подключений с одного ip, на всё остальное отдается ошибка 503. Подробнее http://wiki.nginx.org/HttpLimitZoneModule

Когда конфиг отредактирован, можно проверить его, выполнив
nginx -c /usr/local/etc/nginx/nginx.conf -t

и затем перезапустить
/usr/local/etc/rc.d/nginx restart

лишь бы помогло !

Никак.

Отправить комментарий

Если вы укажете номера тикетов или имя пользователя, отзыв будет выглядеть убедительнее, а провайдеру будет проще разобраться с вашей проблемой

Подробнее о форматировании

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
5 + 7 15 + 8 плюс 3 3