Защита сайта от частого обращения

  • Автор темы alex7804
  • Дата начала
alex7804
Участник
Сообщения
47
Реакции
36
Не большой скрипт, который можно использовать как простейшую защиту от DDOS атак...
PHP:
<?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]=time();
?>
Применительно для фруктовой фермы:
Вставляем код в самом начале файла inc\_header.php
Так же можно добавить код в файлы авторизации - inc\_login.php и pages\admin\_login.php
И не забываем ставить "Мне нравится" ;)
 
MODERN
Участник
Сообщения
756
Реакции
130
Ещё видел что если с одного IP адреса перезагружают/заходят там например 100 раз в минуту, этот IP просто блокирует сайт) Тоже не плохая вещица!
 
alex7804
Участник
Сообщения
47
Реакции
36
SHADOW написал(а):
Ещё видел что если с одного IP адреса перезагружают/заходят там например 100 раз в минуту, этот IP просто блокирует сайт) Тоже не плохая вещица!
Можно и такое, только фермы в основном ставят на не дорогие хостинги, а они, как правило, довольно слабые... А блокировка по IP дает серьезную нагрузку на сервер (т.к. идет постоянное обращение к БД - отслеживание пользователей, постоянная перезапись и т.д.), это не заметно, пока посетителей не много, но когда их перевалит за 5000 в сутки - одна БД займет столько места, что нужно будет искать хостинг по мощнее и подороже......
Но если нужно - позже добавлю... ;)
 
MODERN
Участник
Сообщения
756
Реакции
130
alex7804 написал(а):
Можно и такое, только фермы в основном ставят на не дорогие хостинги, а они, как правило, довольно слабые... А блокировка по IP дает серьезную нагрузку на сервер (т.к. идет постоянное обращение к БД - отслеживание пользователей, постоянная перезапись и т.д.), это не заметно, пока посетителей не много, но когда их перевалит за 5000 в сутки - одна БД займет столько места, что нужно будет искать хостинг по мощнее и подороже......
Но если нужно - позже добавлю... ;)
Если к тебе будет заходить 5000 человек сайт просто не выдержит) Нужно покупать сервер)
 
alex7804
Участник
Сообщения
47
Реакции
36
Продолжим о защите...
Для этого редактируем корневой файл .htaccess
1. Прячем информацию о сервере.
Для этого прописываем строку:
ServerSignature Off
2. Закрываем от просмотра каталог сайта:
IndexIgnore *
Options -Indexes
3. Закрываем доступ к сайту некоторым ботам (так как некоторые боты не несут ни какой пользы, а некоторые так вообще опасны (они сканируют сайт на выявление уязвимостей) то мы запрещаем им доступ) :
SetEnvIf User-Agent MJ12bot MustDie=1
SetEnvIf User-Agent Twiceler MustDie=1
SetEnvIf User-Agent Baiduspider MustDie=1
#SetEnvIf User-Agent Slurp MustDie=1
SetEnvIf User-Agent Java MustDie=1
SetEnvIf User-Agent CommentReader MustDie=1
SetEnvIf User-Agent Dolphin MustDie=1
SetEnvIf User-Agent Yeti MustDie=1
SetEnvIf User-Agent discobot MustDie=1
SetEnvIf User-Agent BTWebClient MustDie=1
SetEnvIf User-Agent Tagoobot MustDie=1
SetEnvIf User-Agent Ezooms MustDie=1
SetEnvIf User-Agent igdeSpyder MustDie=1
SetEnvIf User-Agent AhrefsBot MustDie=1
SetEnvIf User-Agent ZmEu MustDie=1

Order allow,deny
Allow from all
Deny from env=MustDie
На этом пока все... Будет что-то новое - напишу ;-)
 
  • Like
Реакции: Mavr
MODERN
Участник
Сообщения
756
Реакции
130
alex7804 написал(а):
Продолжим о защите...
Для этого редактируем корневой файл .htaccess
1. Прячем информацию о сервере.
Для этого прописываем строку:
ServerSignature Off
2. Закрываем от просмотра каталог сайта:
IndexIgnore *
Options -Indexes
3. Закрываем доступ к сайту некоторым ботам (так как некоторые боты не несут ни какой пользы, а некоторые так вообще опасны (они сканируют сайт на выявление уязвимостей) то мы запрещаем им доступ) :
SetEnvIf User-Agent MJ12bot MustDie=1
SetEnvIf User-Agent Twiceler MustDie=1
SetEnvIf User-Agent Baiduspider MustDie=1
#SetEnvIf User-Agent Slurp MustDie=1
SetEnvIf User-Agent Java MustDie=1
SetEnvIf User-Agent CommentReader MustDie=1
SetEnvIf User-Agent Dolphin MustDie=1
SetEnvIf User-Agent Yeti MustDie=1
SetEnvIf User-Agent discobot MustDie=1
SetEnvIf User-Agent BTWebClient MustDie=1
SetEnvIf User-Agent Tagoobot MustDie=1
SetEnvIf User-Agent Ezooms MustDie=1
SetEnvIf User-Agent igdeSpyder MustDie=1
SetEnvIf User-Agent AhrefsBot MustDie=1
SetEnvIf User-Agent ZmEu MustDie=1

Order allow,deny
Allow from all
Deny from env=MustDie
На этом пока все... Будет что-то новое - напишу ;-)
А поисковые системы в ЧС не внесут?
 
alex7804
Участник
Сообщения
47
Реакции
36
SHADOW написал(а):
А поисковые системы в ЧС не внесут?
Они сканируют контент (содержимое)... Так что им информация о сервере без надобности... А вот различным мошенникам - обязательно нужна, т.к. зная инфу о сервере можно найти уязвимости...
 
Сверху