Студия креативных разработок DevArt.PRO.
Разработка сайтов и форумов под ключ!
Сильнейшая команда в России по vBulletin - читать подробнее...
 
 
 
 

 
 
Здесь скоро опять что то будет...
 
 
 
 
 
 
Loading

Вернуться   форум vBSupport.org > vBulletin > Все версии vB

Объявления
  • Изменения в правах
  • Каталог Фрилансеров
  • Добро пожаловать!
  • Premoderation
  • Новичкам!
  • For English speaking users
Ответ
 
Опции темы Опции просмотра
Старый 17.06.2009, 00:04   #1
Эксперт
 
Аватар для AlfaDogg
Talking Скрипт защиты от частой перезагрузки страницы

Натолкнул на поиски сего скрипта вот этот пост http://vbsupport.org/forum/showthread.php?p=253447

Итак:
Скрипт Klavasoft AntiDDOS

Скрипт Klavasoft AntiDDOS используется для защиты сайта от DDOS атаки по линии HTTP. Разумеется, скрипт не претендует на звание универсального и полного защитника от DDOS - для этих целей лучше использовать оборудование, стоимость которого измеряется десятками тысяч долларов. Если у вас нет такого оборудавания, но есть доступ к настройкам сервера, то вы также сможете обеспечить более эффективную защиту от DDOS, чем та, что предоставляет наш скрипт. А вот защитить виртуальны аккаунт от легонького любительского DDOSa этот скрипт вполне сможет, а такие ДДОС атаки встречаются наиболее часто ввиду дороговизны полномасштабных мероприятий.

Скрипт хранит в разделяемой памяти списки времен заходов с каждого IPa за последнее время. Если количество заходов в таком списке превысит определенный уровень, посетителю выдается техническая страница, которая информирует его о загруженности сервера и автоматически повторяет запрос страницы через некоторое время.
Вот пример такой страницы:

PHP код:
<html>
<
meta http-equiv='refresh' content='20'>
<
body>
<
h2>Our server is currently overloadedyour request will be repeated automatically in 20 seconds</h2
В 3-й версии скрипта реализована блокировка всей сети класса C, что многократно повышает эффективность скрипта, так как часто бывает инфицированна вся сетка компьютеров, осуществляющих DDOS. Такой режим включен по умолчанию, и отменить его можно установкой поля block_cnet объекта в false.


Настройка
Все упомянутые параметры поддаются настройке. Вот развернутый вариант ее:

PHP код:
<? // пример использования скрипта Klavasoft AntiDDOS 
 
include "$_SERVER[DOCUMENT_ROOT]/ks_antiddos.php"
$ksa = new ks_antiddos(); 
 
// скрипт анализирует активность текущего ИПа за последние $seconds_limit секунд 
$seconds_limit 20
// считая заходы свыше $hit_limit - подлежащими блокированию 
$hits_limit 10
 
// скрипт определяет статус посетителя ($ks-?>visitor) как: 
// raw  - посетитель бы по каким-либо причинам не обработан скриптом 
// new  - это первый заход посетителя за последние $seconds_limit секунд 
// cool - количество заходов посетителя - от 2 до $ksa->warm_level 
// hot  - количество заходов больше чем hits_limit и посетитель должен быть заблокирован (приостановлен) 
 
// опционально можно сделать настройки 
$ksa->auto = false;  // не проводить блокирования hot-посетителей скриптом (вы предполагаете сами это сделать) 
$ksa->warm_level = 3;    // значение warm_level по умолчанию - $hits_limit/2 
$ksa->delay = 10;        // предлагать 'hot' посетителю вернуться через $ksa->delay секунд 
// значение по умолчанию - 20 
 
 
// определяем статус посетителя 
$ksa->doit($seconds_limit,$hits_limit); 
// если вы не сбросили значение поля $ksa->auto и статус посетителя $ksa->visitor=='hot' 
// то скрипт отправит браузеру headers and HTML которые организуют задержку перед повторным запросом. 
 
// если $ksa->auto == false, то проверяем надо ли банить посетителя  
if ($ksa->visitor=='hot')  

header('HTTP/1.0 503 Service Unavailable'); 
header('Status: 503 Service Unavailable'); 
header('Retry-After: 30'); 
die('sleep'); 

 
$lite_version = $ksa->visitor=='warm';   // по этой переменной можно отдавать "теплым" посетителям 
// облегченную версию сайта 
 
?>
А если вкратце, то достаточно вставить в хэдер сайта такой код(Нам для этого нужен хак Let Live PHP в аттаче):

PHP код:
<?
include "$_SERVER[DOCUMENT_ROOT]/ks_antiddos.php"
$ksa = new ks_antiddos(); 
$ksa->doit(20,10);
?>
в предположении, что скрипт располагается в корневой папке вашего сайта.

Где doit(20,10); | 20 - время в секундах, а 10 - количество разрешенных перезагрузок.

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

PHP код:
shm_attach() 
и если вы не получите

PHP код:
Fatal errorCall to undefined function: shm_attach() in... 
то пациент жить будет.

Для просмотра и удаления списка фрагментов разделяемой памяти требуется доступ к командной строке. Заметим, что что эта функция не критически важна - скрипт отлично работает без просмотра админом данных о разделяемой памяти. Более того, если доступа к командной строке нет - скрипт все равно способен удалить область расширенной памяти. (Которая, вобщем-то и так сканчается при ближайшей перезагрузке)

Для доступа к разделяемой памяти не используются семафоры, поскольку зависание семафора способно заблокировать весь трафик. Время выполнения скрипта - пол миллисекунды и вероятность накладки ничтожна. И, конечно, в таких случаях скрипт нормально восстанавливается.

При вызове скрипт непосредственно в браузере - доступна контрольная панель

klavasoft.com

Не работает на винде, тк там нет функций работы с разделяемой памятью
Вложения
Тип файла: zip ksantiddos21.zip (3.8 Кб, 13 просмотров)
Тип файла: zip ksantiddos30.zip (4.1 Кб, 46 просмотров)
Тип файла: xml product-letphplive.xml (1.0 Кб, 42 просмотров)
  Ответить с цитированием
Сказали Спасибо:
Скрыть список поблагодаривших

DragonSlayer (11.08.2009), Drags (12.07.2009), Ghost (17.06.2009), Gulia (02.01.2010), intero (18.03.2010), OldEr (02.06.2011), Orfo (20.09.2009), Serberg (17.06.2009), Sleep Walker (11.03.2010), TAIFUN (18.06.2009), vithack (17.06.2009), Андрюшкин (19.06.2009)
Рекламка
Реклама на форуме

Файловый Архив

  • Неограниченное количество категорий и суб-категорий
  • Тонкие настройки прав доступа
  • Предпросмотр медиа файлов: FLV, IFLV, F4A, F4V, MP4, MP3, MOV и других...
  • Мультизагрузка файлов - SWFUploader
  • Добавление файлов с сервера
Подробности и история обновлений продукта в этой теме
Старый 17.06.2009, 12:59   #2
vithack
Простоузер
Поставил, удобная штука, советую;) Автору спасибо;)
  Ответить с цитированием
Старый 17.06.2009, 14:38   #3
zzzru
Знаток
Проверялась работа при реальной атаке?
  Ответить с цитированием
Старый 17.06.2009, 19:14   #4
Serberg
Специалист
 
Аватар для Serberg
Блин. Закину в корень форума ks_antiddos.php, импортировал продукт product-letphplive.xml , в самый вер хедера записал:
<?
include "$_SERVER[DOCUMENT_ROOT]/ks_antiddos.php";
$ksa = new ks_antiddos();
$ksa->doit(20,10);
?>

Реакции 0. Обновлять уже устал, пробовал делать 2 запроса за 20 сек - результат тот же. Версия 3.8.3. У кого нить была подобная ситуация ?
  Ответить с цитированием
Старый 17.06.2009, 19:24   #5
AlfaDogg
Эксперт
 
Аватар для AlfaDogg
zzzru, нет, но как сказано в первом посте
Цитата:
Сообщение от AlfaDogg Посмотреть сообщение
Разумеется, скрипт не претендует на звание универсального и полного защитника от DDOS - для этих целей лучше использовать оборудование, стоимость которого измеряется десятками тысяч долларов. Если у вас нет такого оборудавания, но есть доступ к настройкам сервера, то вы также сможете обеспечить более эффективную защиту от DDOS, чем та, что предоставляет наш скрипт. А вот защитить виртуальны аккаунт от легонького любительского DDOSa этот скрипт вполне сможет, а такие ДДОС атаки встречаются наиболее часто ввиду дороговизны полномасштабных мероприятий.
Так, что это скорей может немного успокоить разгорячившихся юзеров, чем настоящий хороший ддос остановит.


Serberg, хм, а сам форум вкорне или в папке /forum ? нужно именно туда-же куда установлен форум пихать
а и еще, нужно обязательно если форум в другой папке находится например в forum добавить к пути, иначе получим ошибку.

<?
include "$_SERVER[DOCUMENT_ROOT]/forum/ks_antiddos.php";
$ksa = new ks_antiddos();
$ksa->doit(20,10);
?>

Последний раз редактировалось AlfaDogg; 17.06.2009 в 19:41..
  Ответить с цитированием
Старый 17.06.2009, 20:08   #6
Serberg
Специалист
 
Аватар для Serberg
AlfaDogg, форум как раз у меня в корне и находится...
  Ответить с цитированием
Старый 17.06.2009, 20:29   #7
AlfaDogg
Эксперт
 
Аватар для AlfaDogg
Цитата:
Сообщение от AlfaDogg Посмотреть сообщение
Технические требования
Хотя судя по мануалу, функции работы с разделяемой памятью доступны во всех версиях PHP, случаются хостинги без средств межпроцессного взаимодействия. Чтобы выяснить, будет ли скрипт работать на вашем хостинге, вызовите функцию
сом.
Возможно твой случай?
  Ответить с цитированием
Старый 18.06.2009, 14:32   #8
maJic
В Черном списке
 
Аватар для maJic
http://snakearena.net, попробуй обнови много-много раз, и увидишь в дествий Но толку от него...

maJic добавил 18.06.2009 в 22:01
Alfa, только ставить let php live не вижу смысла, можно сделать проще. Создать модуль, местоположение global_start, так-как нам нужно выполнение на всех страницах, и в содержимом модуля
PHP код:
ob_start();
include 
"$_SERVER[DOCUMENT_ROOT]/ks_antiddos.php";
$ksa = new ks_antiddos();
$ksa->doit(20,10);
$ddos ob_get_contents();
ob_end_clean(); 
переменную $ddos вставить в header

Последний раз редактировалось maJic; 18.06.2009 в 22:01.. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 18.06.2009, 23:14   #9
Yoskaldyr
Специалист
Это не остановит даже простой DDoS. Надо настраивать другими средствами.
От этого продукта больше вреда чем пользы, только из-за того что пользователь будет думать что он защищен.

Любой антиддос должен отрабатываться до PHP, а то что предложено здесь в некоторых случаях, не связанных с DDoS-ом, только увеличит нагрузку: к примеру если я захочу открыть много страниц в разных вкладках, сначала сообщение об ошибке потом рефреш (сообщение об ошибке тоже ресурсы есть будет и не так мало, а если делать через систему хуков булки это еще дополнительные запросы в БД - инициализация совсем не легкий процесс у vB). Даже при среднем ддосе можно положить сервак атакой на PHP-скрипт состоящий из одного exit-а

Последний раз редактировалось Yoskaldyr; 18.06.2009 в 23:22..
  Ответить с цитированием
Старый 18.06.2009, 23:26   #10
AlfaDogg
Эксперт
 
Аватар для AlfaDogg
maJic, ыы, не подумал так сделать)
  Ответить с цитированием
Ответ

Закладки

Метки
антиддос, антиперегруз, итп итп

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



 
 

Текущее время: 11:12 25.05.2012. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.6.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd. Перевод: zCarot