Сейчас: 03:15:34   20-го апреля 2024 г.
UsefulScript.ruСкриптыЗащита сайтаЗащита от частого обращения
6
64

Защита сайта от слишком частого обращения

Если к Вашему сайту идет слишком много обращений от какого-либо компьютера (IP адреса), то количество обращений нужно сокращать чтобы, например, не выкачали базу Вашего сайта или чтобы не уложили сервер сотнями (а то и тысячами) запросов в секунду.


Для защиты своего сайта от большого количества обращений можно воспользоваться простым, но довольно эффективным методом, основанным на сессиях.


В самом начале всех страниц Вашего сайта, которые будем защищать от слишком частого обращения, необходимо установить следующий код:

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("Нельзя обращаться к сайту чаще, чем раз в две секунды!");
}

$_SESSION["telecod_ip"]=time();
?>

Данный скрипт записывает время последнего обращения к странице сайта для каждого посетителя в отдельности. При повторном обращении к страничке, скрипт проверяет, через какой интервал времени было сделано это повторное обращение. Если повторное обращение было совершено ранее указанного в скрипте интервала времени (в данном случае это две секунды), тоnbsp;страничка не обновится, а будет показано соответствующее сообщение.


Для наглядного примера работы скрипта, попробуйте обновить данную страничку пару раз с интервалом менее двух секунд. В результате вместо обновленной странички появится надпись: "Нельзя обращаться к сайту чаще, чем раз в две секунды!"


Данный способ можно рассматривать как простейшую защиту сайта от DDoS атак, точнее как защиту от частого обращения для снижения нагрузки на сервер.


Только не увлекайтесь тестированием данного скрипта на нашем сайте, т.к. Вы можете получить автоматический БАН по IP из-за слишком частого обращения к страничкам.


Подробнее о том, как мы это реализовали подобный автоматический БАН по IP, Вы можете узнать в теме - Автобан, или как автоматически заблокировать доступ к сайту.

Дата создания: 17:56:16 14.06.2011 г.
Дата обновления: 12:39:54 10.10.2012 г.
Посещений: 9028 раз(а).

Комментарии посетителей (14 шт.):
Сергей
0
# 342
(18:25:08  09.10.2012 г.)

Добрый день, Ваш скрипт почему-то не работает у меня, и на Вашем сайте похоже что тоже.
Ответить

Administrator
1
# 343
(19:39:52  09.10.2012 г.)

Сергей, спасибо, что сообщили о проблеме, скрипт поправил, можете заново его скопировать.
Ответить

WtS
0
# 506
(23:33:48  29.12.2012 г.)

А как сделать чтобы вместо чем раз в две секунды было чем три раза в пять секунд?
Ответить

Administrator
0
# 509
(23:44:51  29.12.2012 г.)

Для этого лучше воспользоваться другим нашим скриптом - http://usefulscript.ru/avtoban.php
Ответить

Магомед
0
# 1180
(17:52:08  06.10.2013 г.)

Здравствуйте, установил данный скрипт. Спасибо, работает отлично, вот только лог не сохраняется. Папки существуют, права 777.
Ответить

Administrator
0
# 1181
(21:34:10  06.10.2013 г.)

А логи и не должны сохраняться, т.к. это файлы сессий, которые "живут" ограниченное время. Данные файлы сессий сервер сам удаляет через определенное время.
Ответить

Елена
0
# 1410
(08:55:14  17.01.2014 г.)

Скажите, а это можно сделать на вордпресс, и каким образом?
Ответить

Administrator
0
# 1412
(20:07:39  17.01.2014 г.)

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

Android
0
# 2392
(18:50:14  15.04.2015 г.)

Подскажите, почему в папке /log/session ничего не появляется (и должно ли появляться) в какой файл же не указано сессии писать, а просто папка.
П.с. скрипт сам работает.
Ответить

Administrator
0
# 2393
(20:56:39  15.04.2015 г.)

Ничего страшного в это нет. Тут еще многое зависит от настроек сервера. Главное, чтобы скрипт работал.
Ответить

Геннадий
0
# 2618
(16:16:14  12.08.2015 г.)

Знаю данный скрипт уже пару лет и как-то задумался, а можно ли в скрипте оперировать не целыми секундами, а долями секунд? Например, столько-то обращений к сайту за 0.1 секунды.
Перерыл тонны информации, но толку нет абсолютно - никто ничего не знает на эту тему даже близко.
Мысли есть какие-нибудь?
Ответить

Administrator
0
# 2632
(17:46:10  16.08.2015 г.)

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

Лана
0
# 4223
(08:06:58  20.01.2018 г.)

Вопрос не специалиста: можно ли "опустить" сайт в рейтинге поисковиков, с помощью каких-нибудь ботов, по аналогии лайков и дизлайков ютуба? Спасибо.
Ответить

Administrator
0
# 4224
(13:01:23  20.01.2018 г.)

Как правило - нет, т.к. тогда этим бы пользовались все вебмастера. Можно "нагадить" только сайту новичку, а вот старенькому СДЛ уже ничего не сделать. Лучше развивайте свой сайт.
Ответить

Закрыть
Ваше имя:
419 + 18 =
Добавить комментарий:
Ваше имя:
419 + 18 =

Перед публикацией все комментарии проходят обязательную модерацию!

Если Вы хотите задать какой-либо вопрос, то сделайте это на нашем форуме.
Таким образом, Вы сможете быстрее получить ответ на интересующий Вас вопрос.
Посетителей онлайн: 9

Какую CMS для сайта Вы предпочитаете?