Anti_ddos

  • Автор темы gplm555
  • Дата начала
gplm555
Участник
Сообщения
39
Реакции
1
Модуль защита сайта от ddos-атак!
 

Вложения

gplm555
Участник
Сообщения
39
Реакции
1
Данного модуля почему-то не обнаружил на любимом форуме! На мой взгляд он просто необходим всем! Однако настроен он отвратительно... Кто поможет настроить отблагодарю!
 
Fraer
Участник
Сообщения
14
Реакции
0
gplm555 написал(а):
Модуль защита сайта от ddos-атак!
в твоем архиве не полные файлы, и походу на то что не работают
 
kvozimir
Участник
Сообщения
1.935
Реакции
409
ICQ
734713 734713
Skype
модуль выкладывали похожий)
 
gplm555
Участник
Сообщения
39
Реакции
1
Fraer написал(а):
в твоем архиве не полные файлы, и походу на то что не работают
Модуль работает, но настройки надо менять.
 
gplm555
Участник
Сообщения
39
Реакции
1
kvozimir написал(а):
модуль выкладывали похожий)
В данном разделе его не нашёл, хотя помню что именно с нашего форума скачивал.
 
juranja
Участник
Сообщения
99
Реакции
5
Fraer написал(а):
в твоем архиве не полные файлы, и походу на то что не работают
модуль рабочий работает стабильно но от хорошей ддос не спасет, да и кто будет атаку на ферму устраивать
 
juranja
Участник
Сообщения
99
Реакции
5
раз тема есть то вот код
<?php
/*
*--------------------------------------------------------

* Модуль предназначен для ограничения доступа к сайту или
* к страницам, где он включён.
* Принцип работы в том, что запоминается ip-адрес и время
* обращения с этого адреса. И если в течение заданного
* времени происходит обращение с того же адреса, то ему
* выдаётся ошибка

*--------------------------------------------------------
*/

/* Время задержки в секундах */
$ad_delay=2;
/* Путь к папке с временными файлами. Должен существовать */
$ad_DirName=$_SERVER['DOCUMENT_ROOT'].'/tmp';

/*
*---------------------------------------------------------
плохо если поисковый робот будет натыкаться
* на ошибки на сайте. Ему это может сильно не понравиться.

*---------------------------------------------------------
*/
$ad_Robots_UserAgent=array(


'Google',
'MJ12bot',
'msnbot',
'PlantyNet_WebRobot',
'StackRambler',
'TurtleScanner',
'Yahoo',
'Yandex',
'YaDirectBot',
);
/*
*---------------------------------------------------------
* Список доверенных IP.
*---------------------------------------------------------
*/
$ad_good_ip = array(
'215.1075.35.03',
);

/*
*----------------------------------------------------------
* Функция создаёт в указанной директории файл, начинающийся
* с буквы a (для отличия от других возможных файлов) и
* содержащий в имени ip-адрес клиента.
*----------------------------------------------------------
*/
function ad_WiteIP($dir){
$f=fopen($dir.'/a'.$_SERVER['REMOTE_ADDR'], 'w');
fclose($f);
}
/*
*----------------------------------------------------------
* Проверка на наличие в поле HTTP_USER_AGENT чего-нибудь из
* вышенаписанного списка.
*----------------------------------------------------------
*/
$ad_IsRobot=false;
foreach ($ad_Robots_UserAgent as $match){
if (strstr($_SERVER['HTTP_USER_AGENT'], $match)){
$ad_IsRobot=true;
break;
}
}
if( in_array($_SERVER['REMOTE_ADDR'], $ad_good_ip) ) {
$good_ip = true;
} else {
$good_ip = false;
}
/*
*---------------------------------------------------------
* Поисковые роботы не любят, когда к адресу страницы
* добавляется переменная сессии. Поэтому, если на сайте
* используются сессии, то их лучше включать, если агент -
* не робот.
* Если сессии не используются, то этот кусок можно убрать.
*---------------------------------------------------------
*/
if (!$ad_IsRobot AND !$good_ip){
session_start();
}

if (!$ad_IsRobot AND !$good_ip){
/*** Чтение каталога и удаление старых файлов ***/
$ad_dir =opendir($ad_DirName)
or die('Отсутствует директория для временных файлов');
$ad_now =time();
$ad_forbid =$ad_now-$ad_delay;
/* IP-адрес в имени файла, начинающегося на букву a,
а время обращения - время изменения файла */
while (false!==($ad_FName=readdir($ad_dir))){
if (ereg('^a[1-9]',$ad_FName)
&& (@ filemtime($ad_DirName.'/'.$ad_FName)<$ad_forbid)){
@ unlink($ad_DirName.'/'.$ad_FName);
}
}
closedir($ad_dir);
/*** Проверка на существование пометки
о недавнем обращении с данного ip-адреса ***/
if (file_exists($ad_DirName.'/a'.$_SERVER['REMOTE_ADDR'])){
/* Если обращение было недавно, то выводим сообщение об ошибке */
header('HTTP/1.0 503 Service Unavailable');
header('Status: 503 Service Unavailable');
header('Retry-After: '.$ad_delay*3);
?>
<!doctype html public "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Ошибка 503</title>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251" />
</head>
<body>
<h1>Ошибка 503 (Service Unavailable)</h1>
<p>Сервер не может в данный момент выдать запрашиваемую Вами страницу.
</p>
</body>
</html>
<?php
ad_WiteIP($ad_DirName); // Перед выходом записываем ip
exit;
}else{
ad_WiteIP($ad_DirName);
}
}
?>





как подключить разберетесь надеюсь
 
alek
Участник
Сообщения
11
Реакции
0
если в корне сайте в файле index.php вставляешь код
include('anti_ddos/index.php' пишет нехватает файлов
 
The Doshs
Участник
Сообщения
383
Реакции
63
  • #10
Она не полная...
У меня есть полная,но надо достать из скрипта,а мне как-то не хочется...Но могу продать скрипт с анти-ддосом.Недорого...
 
swerg
Сервис интернет рекламы http://luzynka.ru/
Участник
Сообщения
334
Реакции
70
Skype
  • #11
The Doshs написал(а):
Она не полная...
У меня есть полная,но надо достать из скрипта,а мне как-то не хочется...Но могу продать скрипт с анти-ддосом.Недорого...
Вернее сказать ты не знаеш где он и какие коды а если знаеш то достать его пятисекудное дело!
 
The Doshs
Участник
Сообщения
383
Реакции
63
  • #12
swerg написал(а):
Вернее сказать ты не знаеш где он и какие коды а если знаеш то достать его пятисекудное дело!
Дошли руки...
 
ZLODEY
Участник
Сообщения
82
Реакции
3
  • #13
Вот в одной ферме нашел защиту в файле index.php от DDos атаки не знаю работает ли защита, может кому пригодиться !
Код:
<?PHP
error_reporting(0); // вывод ошибок


if($_GET['menu']!='admin4ik' && 'support'){
function limpiarez($mensaje){
$mensaje = htmlspecialchars(trim($mensaje));
$mensaje = str_replace("'","&prime;",$mensaje);
$mensaje = str_replace(";","&brvbar;",$mensaje);
$mensaje = str_replace("$"," USD ",$mensaje);
$mensaje = str_replace("<","&lang;",$mensaje);
$mensaje = str_replace(">","&rang;",$mensaje);
$mensaje = str_replace('"',"&rdquo;",$mensaje);
$mensaje = str_replace("%27"," ",$mensaje);
$mensaje = str_replace("0x29"," ",$mensaje);
$mensaje = str_replace("&amp amp ","&",$mensaje);
return $mensaje;
}

foreach($HTTP_POST_VARS as $i => $value){$HTTP_POST_VARS[$i]=limpiarez($HTTP_POST_VARS[$i]);}
foreach($HTTP_GET_VARS as $i => $value){$HTTP_GET_VARS[$i]=limpiarez($HTTP_GET_VARS[$i]);}
foreach($_POST as $i => $value){$_POST[$i]=limpiarez($_POST[$i]);}
foreach($_GET as $i => $value){$_GET[$i]=limpiarez($_GET[$i]);}
foreach($_COOKIE as $i => $value){$_COOKIE[$i]=limpiarez($_COOKIE[$i]);}


foreach($HTTP_POST_VARS as $i => $value){$HTTP_POST_VARS[$i]=stripslashes($HTTP_POST_VARS[$i]);}
foreach($HTTP_GET_VARS as $i => $value){$HTTP_GET_VARS[$i]=stripslashes($HTTP_GET_VARS[$i]);}
foreach($_POST as $i => $value){$_POST[$i]=stripslashes($_POST[$i]);}
foreach($_GET as $i => $value){$_GET[$i]=stripslashes($_GET[$i]);}
foreach($_COOKIE as $i => $value){$_COOKIE[$i]=stripslashes($_COOKIE[$i]);}

################## Фильтрация всех POST и GET #######################################
function filter_sf(&$sf_array)
{
while (list ($X,$D) = each ($sf_array)):
  $sf_array[$X] = limpiarez(mysql_escape_string(strip_tags(htmlspecialchars($D))));
endwhile;
}
filter_sf($_GET);
filter_sf($_POST);
#####################################################################################

function anti_sql()
{
    $check = html_entity_decode( urldecode( $_SERVER['REQUEST_URI'] ) );
    $check = str_replace( "", "/", $check );

    $check = mysql_real_escape_string($str);
    $check = trim($str);           
    $check = array("AND","UNION","SELECT","WHERE","INSERT","UPDATE","DELETE","OUTFILE","FROM","OR","SHUTDOWN","CHANGE","MODIFY","RENAME","RELOAD","ALTER","GRANT","DROP","CONCAT","cmd","exec");
    $check = str_replace($check,"",$str);
  
  
    if( $check )
    {
        if((strpos($check, '<')!==false) || (strpos($check, '>')!==false)  ||  (strpos($check, '"')!==false) || (strpos($check,"'")!==false) || (strpos($check, '*')!==false) || (strpos($check, '(')!==false) || (strpos($check, ')')!==false) || (strpos($check, ' ')!==false) || (strpos($check, ' ')!==false) || (strpos($check, ' ')!==false) )
        {
            $prover = true;
        }
      
        if((strpos($check, 'src')!==false) || (strpos($check, 'img')!==false) || (strpos($check, 'OR')!==false) ||  (strpos($check, 'Image')!==false) || (strpos($check, 'script')!==false) || (strpos($check, 'javascript')!==false) || (strpos($check, 'language')!==false) || (strpos($check, 'document')!==false) || (strpos($check, 'cookie')!==false) || (strpos($check, 'gif')!==false) || (strpos($check, 'png')!==false) || (strpos($check, 'jpg')!==false) || (strpos($check, 'js')!==false)  )
        {
            $prover = true;
        }
      
    }

    if (isset($prover))
    {
        die( "Попытка атаки на сайт или введены запрещённые символы!" );
        return false;
        exit;
    }
}
anti_sql();

}

# Счетчик
function TimerSet(){
    list($seconds, $microSeconds) = explode(' ', microtime());
    return $seconds + (float) $microSeconds;
}

$_timer_a = TimerSet();

# Старт сессии
@session_start();

# Старт буфера
@ob_start();

# Default
$_OPTIMIZATION = array();
$_OPTIMIZATION["title"] = "Заработок на гномах";
$_OPTIMIZATION["description"] = "Заработок на гномах";
$_OPTIMIZATION["keywords"] = "Заработок на гномах, вложения, заработать, ферма, денежная ферма, заработать на ферме";

# Константа для Include
define("CONST_RUFUS", true);

# Автоподгрузка классов
function __autoload($name){ include("classes/_class.".$name.".php");}

# Класс конфига
$config = new config;

# Функции
$func = new func;

# Установка REFERER
include("inc/_set_referer.php");

# База данных
$db = new db($config->HostDB, $config->UserDB, $config->PassDB, $config->BaseDB);

# Шапка
@include("inc/_header.php");

        if(isset($_GET["menu"])){
      
            $menu = strval($_GET["menu"]);
          
            switch($menu){
          
                case "404": include("pages/_404.php"); break; // Страница ошибки
                case "rules": include("pages/_rules.php"); break; // Правила проекта
                case "about": include("pages/_about.php"); break; // О проекте
                case "contacts": include("pages/_contacts.php"); break; // Контакты
                case "news": include("pages/_news.php"); break; // Новости
                case "signup": include("pages/_signup.php"); break; // Регистрация
                case "recovery": include("pages/_recovery.php"); break; // Восстановление пароля
                                case "competition": include("pages/_competition.php"); break; // Конкурсы
                case "account": include("pages/_account.php"); break; // Аккаунт
                                case "support": include("pages/_support.php"); break; // Тикеты
                case "users": include("pages/_users_list.php"); break; // Пользователи
                case "payments": include("pages/_payments_list.php"); break; // Выплаты
                                case "wm": include("pages/_wm.php"); break; // Выплаты
              
                case "admin4ik": include("pages/_admin.php"); break; // Админка
              
            # Страница ошибки
            default: @include("pages/_404.php"); break;
          
            }
          
        }else @include("pages/_index.php");


# Подвал
@include("inc/_footer.php");


# Заносим контент в переменную
$content = ob_get_contents();

# Очищаем буфер
ob_end_clean();
  
    # Заменяем данные
    $content = str_replace("{!TITLE!}",$_OPTIMIZATION["title"],$content);
    $content = str_replace('{!DESCRIPTION!}',$_OPTIMIZATION["description"],$content);
    $content = str_replace('{!KEYWORDS!}',$_OPTIMIZATION["keywords"],$content);
    $content = str_replace('{!GEN_PAGE!}', sprintf("%.5f", (TimerSet() - $_timer_a)) ,$content);
  
    # Вывод баланса
    if(isset($_SESSION["user_id"])){
  
        $user_id = $_SESSION["user_id"];
        $db->Query("SELECT money_b, money_p FROM db_users_b WHERE id = '$user_id'");
        $balance = $db->FetchArray();
      
        $content = str_replace('{!BALANCE_B!}', sprintf("%.2f", $balance["money_b"]) ,$content);
        $content = str_replace('{!BALANCE_P!}', sprintf("%.2f", $balance["money_p"]) ,$content);
    }
  
// Выводим контент
echo $content;
?>
 
Freeman18rus
Участник
Сообщения
26
Реакции
3
  • #14
ZLODEY написал(а):
Вот в одной ферме нашел защиту в файле index.php от DDos атаки не знаю работает ли защита, может кому пригодиться !
Код:
<?PHP
error_reporting(0); // вывод ошибок


if($_GET['menu']!='admin4ik' && 'support'){
function limpiarez($mensaje){
$mensaje = htmlspecialchars(trim($mensaje));
$mensaje = str_replace("'","&prime;",$mensaje);
$mensaje = str_replace(";","&brvbar;",$mensaje);
$mensaje = str_replace("$"," USD ",$mensaje);
$mensaje = str_replace("<","&lang;",$mensaje);
$mensaje = str_replace(">","&rang;",$mensaje);
$mensaje = str_replace('"',"&rdquo;",$mensaje);
$mensaje = str_replace("%27"," ",$mensaje);
$mensaje = str_replace("0x29"," ",$mensaje);
$mensaje = str_replace("&amp amp ","&",$mensaje);
return $mensaje;
}

foreach($HTTP_POST_VARS as $i => $value){$HTTP_POST_VARS[$i]=limpiarez($HTTP_POST_VARS[$i]);}
foreach($HTTP_GET_VARS as $i => $value){$HTTP_GET_VARS[$i]=limpiarez($HTTP_GET_VARS[$i]);}
foreach($_POST as $i => $value){$_POST[$i]=limpiarez($_POST[$i]);}
foreach($_GET as $i => $value){$_GET[$i]=limpiarez($_GET[$i]);}
foreach($_COOKIE as $i => $value){$_COOKIE[$i]=limpiarez($_COOKIE[$i]);}


foreach($HTTP_POST_VARS as $i => $value){$HTTP_POST_VARS[$i]=stripslashes($HTTP_POST_VARS[$i]);}
foreach($HTTP_GET_VARS as $i => $value){$HTTP_GET_VARS[$i]=stripslashes($HTTP_GET_VARS[$i]);}
foreach($_POST as $i => $value){$_POST[$i]=stripslashes($_POST[$i]);}
foreach($_GET as $i => $value){$_GET[$i]=stripslashes($_GET[$i]);}
foreach($_COOKIE as $i => $value){$_COOKIE[$i]=stripslashes($_COOKIE[$i]);}

################## Фильтрация всех POST и GET #######################################
function filter_sf(&$sf_array)
{
while (list ($X,$D) = each ($sf_array)):
  $sf_array[$X] = limpiarez(mysql_escape_string(strip_tags(htmlspecialchars($D))));
endwhile;
}
filter_sf($_GET);
filter_sf($_POST);
#####################################################################################

function anti_sql()
{
    $check = html_entity_decode( urldecode( $_SERVER['REQUEST_URI'] ) );
    $check = str_replace( "", "/", $check );

    $check = mysql_real_escape_string($str);
    $check = trim($str);         
    $check = array("AND","UNION","SELECT","WHERE","INSERT","UPDATE","DELETE","OUTFILE","FROM","OR","SHUTDOWN","CHANGE","MODIFY","RENAME","RELOAD","ALTER","GRANT","DROP","CONCAT","cmd","exec");
    $check = str_replace($check,"",$str);


    if( $check )
    {
        if((strpos($check, '<')!==false) || (strpos($check, '>')!==false)  ||  (strpos($check, '"')!==false) || (strpos($check,"'")!==false) || (strpos($check, '*')!==false) || (strpos($check, '(')!==false) || (strpos($check, ')')!==false) || (strpos($check, ' ')!==false) || (strpos($check, ' ')!==false) || (strpos($check, ' ')!==false) )
        {
            $prover = true;
        }
    
        if((strpos($check, 'src')!==false) || (strpos($check, 'img')!==false) || (strpos($check, 'OR')!==false) ||  (strpos($check, 'Image')!==false) || (strpos($check, 'script')!==false) || (strpos($check, 'javascript')!==false) || (strpos($check, 'language')!==false) || (strpos($check, 'document')!==false) || (strpos($check, 'cookie')!==false) || (strpos($check, 'gif')!==false) || (strpos($check, 'png')!==false) || (strpos($check, 'jpg')!==false) || (strpos($check, 'js')!==false)  )
        {
            $prover = true;
        }
    
    }

    if (isset($prover))
    {
        die( "Попытка атаки на сайт или введены запрещённые символы!" );
        return false;
        exit;
    }
}
anti_sql();

}

# Счетчик
function TimerSet(){
    list($seconds, $microSeconds) = explode(' ', microtime());
    return $seconds + (float) $microSeconds;
}

$_timer_a = TimerSet();

# Старт сессии
@session_start();

# Старт буфера
@ob_start();

# Default
$_OPTIMIZATION = array();
$_OPTIMIZATION["title"] = "Заработок на гномах";
$_OPTIMIZATION["description"] = "Заработок на гномах";
$_OPTIMIZATION["keywords"] = "Заработок на гномах, вложения, заработать, ферма, денежная ферма, заработать на ферме";

# Константа для Include
define("CONST_RUFUS", true);

# Автоподгрузка классов
function __autoload($name){ include("classes/_class.".$name.".php");}

# Класс конфига
$config = new config;

# Функции
$func = new func;

# Установка REFERER
include("inc/_set_referer.php");

# База данных
$db = new db($config->HostDB, $config->UserDB, $config->PassDB, $config->BaseDB);

# Шапка
@include("inc/_header.php");

        if(isset($_GET["menu"])){
    
            $menu = strval($_GET["menu"]);
        
            switch($menu){
        
                case "404": include("pages/_404.php"); break; // Страница ошибки
                case "rules": include("pages/_rules.php"); break; // Правила проекта
                case "about": include("pages/_about.php"); break; // О проекте
                case "contacts": include("pages/_contacts.php"); break; // Контакты
                case "news": include("pages/_news.php"); break; // Новости
                case "signup": include("pages/_signup.php"); break; // Регистрация
                case "recovery": include("pages/_recovery.php"); break; // Восстановление пароля
                                case "competition": include("pages/_competition.php"); break; // Конкурсы
                case "account": include("pages/_account.php"); break; // Аккаунт
                                case "support": include("pages/_support.php"); break; // Тикеты
                case "users": include("pages/_users_list.php"); break; // Пользователи
                case "payments": include("pages/_payments_list.php"); break; // Выплаты
                                case "wm": include("pages/_wm.php"); break; // Выплаты
            
                case "admin4ik": include("pages/_admin.php"); break; // Админка
            
            # Страница ошибки
            default: @include("pages/_404.php"); break;
        
            }
        
        }else @include("pages/_index.php");


# Подвал
@include("inc/_footer.php");


# Заносим контент в переменную
$content = ob_get_contents();

# Очищаем буфер
ob_end_clean();

    # Заменяем данные
    $content = str_replace("{!TITLE!}",$_OPTIMIZATION["title"],$content);
    $content = str_replace('{!DESCRIPTION!}',$_OPTIMIZATION["description"],$content);
    $content = str_replace('{!KEYWORDS!}',$_OPTIMIZATION["keywords"],$content);
    $content = str_replace('{!GEN_PAGE!}', sprintf("%.5f", (TimerSet() - $_timer_a)) ,$content);

    # Вывод баланса
    if(isset($_SESSION["user_id"])){

        $user_id = $_SESSION["user_id"];
        $db->Query("SELECT money_b, money_p FROM db_users_b WHERE id = '$user_id'");
        $balance = $db->FetchArray();
    
        $content = str_replace('{!BALANCE_B!}', sprintf("%.2f", $balance["money_b"]) ,$content);
        $content = str_replace('{!BALANCE_P!}', sprintf("%.2f", $balance["money_p"]) ,$content);
    }

// Выводим контент
echo $content;
?>
кто-нибуть проверял сие творчество?
 
MrMatnoos
Участник
Сообщения
198
Реакции
41
Skype
  • #17
ZLODEY написал(а):
Что действительно работает?
Ну либо это вторая заглушка выкинула с сайта при досс атаке либо эта не знаю)
 
google
Участник
Сообщения
66
Реакции
3
  • #18
А тогда эта чем отличается от той что выложили?

<?php
// объявляем работу с сессиями
session_start();
// указываем папку, куда будет сохраняться информация сессий
session_save_path($_SERVER["DOCUMENT_ROOT"]."/log/session");
// устанавливаем защиту по IP (сессии) не чаще, чем раз в две секунды.
if (isset($_SESSION[telecod_ip])) {
$t = ((int)((time()-$_SESSION[telecod_ip])));
if($t < 2) die("Нельзя обращаться к сайту чаще, чем 1 раз в две секунды!");
}
$_SESSION[telecod_ip]=ti
 
Rozario
Участник
Сообщения
38
Реакции
8
  • #20
gplm555 написал(а):
Модуль защита сайта от ddos-атак!
Модуль работает, но как то безобразно, блокирует от фонаря, то после шестого клика то после второго,
У кого нибудь получилось его настроить грамотно?
 
Сверху