Форум SAPE.RU

Форум SAPE.RU (http://forum.sape.ru/index.php)
-   Курилка (http://forum.sape.ru/forumdisplay.php?f=22)
-   -   Заблокировали сайт за превышение нагрузки (http://forum.sape.ru/showthread.php?t=40600)

Drugan 31.10.2009 20:32

Заблокировали сайт за превышение нагрузки
 
Хостер teli заблокировал сайт за превышение нагрузки. В логах в момент перегрузки такие записи:

94.50.175.225 - - [30/Oct/2009:20:23:29 +0300] "POST / HTTP/1.0" 500 12133 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461; .NET CLR 1.0.3705), Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461; .NET CLR 1.0.3705)"

Запросов много до десятка в секунду. Такое повторялось несколько раз за последние дни. Адреса разные, т.е. по ip не заблокировать. Все адреса из пула УСИ. Весь пул блокировать не могу, т.к. основные посетители с него и идут. Как можно защититься?

Playray 31.10.2009 20:43

Я в такой момент переехал на другой хостинг и не стал разбираться

Drugan 31.10.2009 21:22

У меня возникла мысль. В запросах этих всегда есть "POST / HTTP/1.0", можно на основании этого вытаскивать ip и писать их deny в .htaccess? Я не силен в php, может у кого уже есть подобный скрипт?

Последний Герой 31.10.2009 21:33

Цитата:

Сообщение от Drugan (Сообщение 607401)
500

эту ошибку выдает Ваш сервер
ищите дыры в скрипте (предположительно index.php), скрипт создает нагрузку

Цитата:

Сообщение от Drugan (Сообщение 607427)
"POST / HTTP/1.0", можно на основании этого вытаскивать ip и писать их deny в .htaccess?

проще метод пост запретить, толку от него нет, все равно 500 ошибка

Drugan 31.10.2009 21:49

Вначале ответ 200 идет, потом 503 и 500.

Добавлено через 1 минуту
if (strstr($_SERVER['REQUEST_URI'] ,"POST / HTTP/1.0"))
{
$htc=fopen("/home/xxxxxx/public_html/.htaccess", "a");
fputs($htc, "deny from " . $_SERVER['REMOTE_ADDR']);
fclose($htc);
header("HTTP/1.1 404 Not Found");
exit;
}

Это поможет? Код правильный?

Последний Герой 31.10.2009 21:50

Цитата:

Сообщение от Drugan (Сообщение 607481)
Вначале ответ 200 идет, потом 503 и 500.

прям как пугачева, ла, ага и у...

500 - ошибка скрипта. блокируйте метод пост.

justworker 31.10.2009 23:41

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

Последний Герой 01.11.2009 00:00

Цитата:

Сообщение от Drugan (Сообщение 607481)
if (strstr($_SERVER['REQUEST_URI'] ,"POST / HTTP/1.0"))
{
$htc=fopen("/home/xxxxxx/public_html/.htaccess", "a");
fputs($htc, "deny from " . $_SERVER['REMOTE_ADDR']);
fclose($htc);
header("HTTP/1.1 404 Not Found");
exit;
}

Это поможет? Код правильный?

нет не правильный

Drugan 01.11.2009 07:46

Все неправильно, да неправильно, лучше бы подсказали, как нужно :) Ладно, научусь, еще одна попытка:

RewriteCond %{THE_REQUEST} "POST / HTTP/1.0"
RewriteRule .* - [F]

Так тоже неправильно?

Wink 01.11.2009 09:10

Попробуйте блокировать метод POST если при этом передается пустой REFERER. Это сохранит работоспособность сайта, если на нем есть формы отправки комментариев или еще что-нибудь, отправляющее данные через POST.

Код:

RewriteEngine on
RewriteCond %{HTTP_REFERER} ^$
RewriteCond %{REMOTE_METHOD} POST
RewriteRule ^(.*)$ - [F]



Часовой пояс GMT +3, время: 15:23.

Работает на vBulletin® версия 3.8.7.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
SAPE.RU — система купли-продажи ссылок с главных и внутренних страниц сайтов.