Быстрая обработка при DoS-атаке

MiksIr

miksir@home:~$
За что меня отключит любой нормальный хостинг? За то что в начале index.php я буду следить - не заходил ли этот IP-адрес в течении последних 30 секунд? Это не загрузит процессор даже на пол процента.
Мдя? А исполнять программу проверки кто будет, ты вместо процессора? Процессор будет нагружен на 100%, ибо это ддос, у тебя к каждому процессу пхп уже давно очередь клиентов, и пусть даже эта проверка у тебя за 0.01 вылетает, сотни запросов в секунду для ддоса копейки. Все, что ты своим решением делаешь, это сокращаешь время работы скрипта с 0.1 до 0.01, к примеру. А это не те цифры, которыми ботов испугать. А в фаирвол то ничего не добавишь - хостинг.
 

fixxxer

К.О.
Партнер клуба
Может это и не задача обычного поискового бота. Но может в этом и ответ почему россияне пользуются Яндексом и Гуглом , а не используют что-то типа search.ru и altavista.com (используют тех у кого хорошие боты , а не тех у кого обычные поисковые боты)
едем в Юмор?
 

Splurov

Новичок
Вы что накинулись на человека? Возникла проблема, он в силу своих навыков её быстро решил. Какая разница правильно это или нет с религиозной точки зрения? Тем более единственный верный ответ для 99% всех сайтов был дан в первом комментарии.
 

baev

‹°°¬•
Команда форума
Роберт, не надо передёргивать.
Вопрос про клоакинг возник после Вашего предложения фильтровать ботов.
 

Роберт

Аналитик
HraKK
Так не вылетел же из индекса.
А по поводу кеширования давай уточним , ты спрашиваешь "почему бы не сделать" или "почему я не сделал"? Я не пишу книгу о том как бороться , а рассказал как я справился.

baev
Правильно. Если поисковый бот не сможет выполнить переход с index.htm на index.php - я ему помогу это сделать сам.

fixxxer
Ты можешь ехать. У тебя по теме вопроса всё-равно ничего нету.

MiksIr
Тоесть ты хочешь сказать что скрипт:
-----
имя файла index.php
PHP:
<?
include('DostupaNet.php');
...
имя файла DostupaNet.php
PHP:
<?
if (in_array($_SERVER[REMOTE_ADDR],array('80.80.80.80','90.90.90.90',...,'69.31.44.153','71.175.150.172'))) Die();
?>
-----
Тоесть ты хочешь сказать что такой скрипт будет выполняться 0.01 секунду?
 

weregod

unserializer
Автор оригинала: Роберт
С другой стороны зайдя на адрес rutracker.org получаешь:
<meta http-equiv="Refresh" content="0;URL=forum/index.php">
Вопрос - Зачем?
рутрекеру не нужно попадать в индекс поисковых машин
 

MiksIr

miksir@home:~$
У меня на локальной машине банальный in_array по 2000 элементов работает 0.004-0.006. Почему ты думаешь, что на хостинговой машине да еще с обвязкой и т.д. это будет быстрее? Да даже если это 0.001 работать будет... 1000 запросов в секунду? Это несколько сотен ботов по 3-4 запроса в секунду. А ботов будет несколько тысяч скорее всего. Вот и думай - отключит тебя хостер или нет.
 

Роберт

Аналитик
Автор оригинала: MiksIr
А ботов будет несколько тысяч скорее всего.
Почему несколько тысяч? Несколько десятков тысяч! И заходят они у тебя на произвольный адрес (и с www , и без) , и параметры подставляют иногда (ну типа как тут phpclub.ru/talk/showthread.php?threadid=119465 , где threadid от 10 000 до 110 000) , и рефереров иногда вставляют (берут их из последних страниц которые посещал браузер атакующего компьютера) , и не просто запрос делается , а через компоненты типа WebBrowser (который выполняет всё что выполняет обычный движок браузера , тоесть и все куки , и редиректы , и скрипты) , и после этого раз в несколько минут заходит на другую страницу , а иногда и видеофайлик с этой страницы начнёт кчать...
Что ты тогда будешь делать?
Давай не будешь придумывать сколько "тысяч скорее всего" будет ботов? Просто посмотри что у меня в первом сообщении написано - там другие начальные условия. И даже если взять твои самые скептические выводы о том что внедрение такой проверки уменьшит время выполнения скрипта с 0.1 до 0.01 секунды - то мой сайт уже не вырубится от того что пара посетителей нажмёт Ctrl+F5 в своих IE. А при цифрах 0.004-0.006 справится и с поставленной задачей (отобьёт DoS из нескольких сотен заходов в секунду). Да и приведённые тобой цифры можно уменьшить , например вписывая не полный IP-адрес , а только сетку подкласса С (это уже 25% экономии) , да и элементов в in_array будет меньше...


weregod
RuTracker.org хорошо проиндексированы и гуглом и яндексом.
Значит эта строка приследует другие цели
<meta http-equiv="Refresh" content="0;URL=forum/index.php">
 

MiksIr

miksir@home:~$
Что ты тогда будешь делать?
То же, что и раньше - находить патерны обращений в логах и блокировать по ним. А вот твой пул скриптов будет забит тупой работой проверки in_array ботов и нормальным клинтам будет шиш. А если ты делаешь защиту для хостинга на несколько сотен ботов, то вперед. Не удивляйся потом только, что тебя за нагрузку заблокировали. Хотя для ускорения могу посоветовать еще один вариант if (true) die(). Вообще летать будет.
 

pilot911

Новичок
вызято с http://govnokod.ru/3380

Но вы знаете, от толпы школьников с кнопками F5 это реально помогает!


PHP:
<?php
session_start();
// супер-мега защита от ддоса
$_SESSION['antiddos']==time() ? exit() : $_SESSION['antiddos']=time();
//конец супер мега защиты
....
?>
 

fixxxer

К.О.
Партнер клуба
это же какой говнокод должен быть, чтобы от F5 ложилось... битрикс?
 
Сверху