Подскажите решение. Грузят запросами сайт.

S
На сайте с 28.03.2010
Offline
19
567

Здравствуйте. У меня такая проблема: есть проект на движке МедиаВики, посещаемость - 600 уников в день, тексты уникальные.

При загрузке одной страницы пользователем происходит небольшое количество запросов к базе, я думаю, порядка десяти или около того.

Всё было прекрасно, но кто-то решил то ли выкачать сайт при помощи какого-то софта, то ли ещё что. В итоге в один прекрасный день хостер блокирует мне аккаунт, говорит, что сайт занимает слишком много ресурсов процессора. Посмотрели логи - там с одного айпишника 3000 (!) обращений к базе в секунду, то есть явно это не человек странички просматривает. Подсетку айпишника заблокировали, сайт открыли, через три дня - та же история, уже с другого айпи. Не знаю, что и предпринять.

Подскажите, с какой целью (помимо кражи контента или атаки с целью положить сайт) ещё могут бомбить базу, и как с этим бороться? Нельзя же без конца блокировать адреса, да и хостера устану упрашивать снова разблочить мне аккаунт. Может, есть иное решение?

WS
На сайте с 17.11.2010
Offline
25
#1
schmeisser:
Подскажите, с какой целью (помимо кражи контента или атаки с целью положить сайт) ещё могут бомбить базу, и как с этим бороться?

Может это боты поисковиков? Даже если у вас страницы получаются через форму, может на них поставили кучу ссылок и боты банально выкачивают сайт?

Или вы кому-то насолили и вам устроили мини DOS атаку.

schmeisser:
Нельзя же без конца блокировать адреса, да и хостера устану упрашивать снова разблочить мне аккаунт. Может, есть иное решение?

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

Если у вас VDS или выделенный сервер можно поставить и настроить фаервол который это делает автоматом.

P.S. Вообще поговорите с хостером существуют специальные фаерволы для сервера, которые блокируют ип адреса автоматом при определенном кол-ве запросов (защита от простой и тупой DOS атаки).

S
На сайте с 28.03.2010
Offline
19
#2

нет, это явно не боты поисковиков, по хуизу было бы видно.

во-первых огромного количества внешних ссылок нет, во-вторых - раньше же всё было нормально.

сайт не через формы выводится, страницы собираются пхп-скриптом из sql базы при обращении к ним, как это происходит на большинстве динамических CMS.

да и боты, насколько я знаю, постепенно индексируют, а не накидываются как бешеные.

разве что ддосит кто-то, в самом деле. Хотя конфронтаций не было и тематика не конкурентная, сайт информационный.

у меня не VDS, обычный аккаунт на сервере. C хостером поговорю сегодня, спасибо.

WS
На сайте с 17.11.2010
Offline
25
#3
schmeisser:
Хотя конфронтаций не было и тематика не конкурентная, сайт информационный

Тогда вполне возможно что это или боты спамеров (собирают email) или действительно воруют контент.

WhiteSmartFox добавил 07-02-2011 в 15:21

schmeisser:
у меня не VDS, обычный аккаунт на сервере. C хостером поговорю сегодня, спасибо.

Можете обратится к программисту (на том же фрилансе), чтобы он написал дополнение к движку которое не позволит выкачивать более определенного кол-ва страниц за секунду/минуту/час с одного ип адреса. Это относительно не сложно. Суть обращаться только к небольшой таблице со списком последних ип адресов и если кол-во запросов с ип адреса больше определенного числа выводить 404 ошибку. Таблицу периодически чистить удаляя старые значения.

WT
На сайте с 08.10.2010
Offline
17
#4

А кэширование применять не пробовали, чтобы каждый раз за одной и той же информацией в базу не заглядывать??

Ну и, само собой, блокировать по IP особо рвущихся к Вашему контенту. Хотя блокировка вряд ли поможет - если захотят уронить сайт - будут бомбить через прокси.

За еду не работаю, зарабатываю здесь (http://www.sape.ru/r.amStvLXttk.php) Работа для ленивых - продвигай сайты автоматически (http://seopult.ru/ref.php?ref=1f6f897913cc593f)
M
На сайте с 17.04.2008
Offline
88
MBo
#5

защита от флуда, авторский вариант и инструкция

http://php.spb.ru/other/_dima_noflood.php

и немного запиленный вариант (удаляет все файлы в директории лога скрипта, в хедер выдаёт 503 и Retry-After)

[ATTACH]83002[/ATTACH]

подключать в самом начале кода, напр., в index.php

было

<?php

error_reporting(E_ALL);

стало

<?php

error_reporting(E_ALL);

include('admin/_noflood_mod.php');

для "сдруживания" скрипта с нужными ботами, типа Гугла, Яндекса, лучше в robots.txt внести Crawl-delay, напр.,

User-agent: *

Disallow:

Crawl-delay: 3

zip _noflood_mod.zip

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий