Цитата мудреца

Голосование

Система Orphus. Если вы заметили ошибку на сайте, нажмите сюда.
Загружается, подождите...
Начало сайта Материалы сайта Программы PHP-скрипты
Версия для слабовидящих
Версия для печати

Ограничение на скорость выдачи страниц одному пользователю

Здесь представлены некоторые мои разработки на PHP. Это в, основном, служебные скрипты, которые работают в составе других скриптов и не могут быть протестированы здесь непосредственно.

Пробовал ничего не происходит, но когда был установлен первый
вариант скрипта в папке tmp_path в течение 3 дней появилось
около 200 IP адресов а далее в течение почти года ничего не происходило.
Но вместе с тем хост перестал показывать чрезмерную нагрузку.
Ответить


Петр, во-первых, не важно, какой у Вас шаблонизатор. Скрипт никак не привязан к шаблону. Главное, вызвать его до всяких сложных обработок.
Во-вторых, если у вас логи содержатся в файле .gz, это значит, что они сжаты. Вряд ли команда cat сможет раскрутить этот архив. Поэтому Вам однозначно нужно выключать эту выборку, т.е. всё, что касается получения логов.

И вот когда Вы это выключите, тогда смотрите, что и почему у вас не получается.
Ответить


Здравствуйте.
На сервере появились лишние файлы, создающие дорвеи для постороннего сайта. Из-за того что при этом в принадлежащей скрипту antiddos папке tmp_path/ были удалены файлы .htaccess и access.txt, пришлось изучить ваш скрипт на уязвимости. Уязвимой может быть запрос к логам функцией exec(), если злоумышленник в обратный DNS запрос, который делает функция gethostbyaddr(), вставит произвольный код, например каким то образом получит доступ к правам на администрирование информации отдаваемой при обратном DNS запросе.

Я у себя на всякий случай в скрипте из запроса к логам убрал часть строки
Код: Выделить всё
|(' . str_replace('.', '\.', $host)
может зря.
Другой вариант
Код: Выделить всё
$host = gethostbyaddr(USER_IP);
заменить на
Код: Выделить всё
$host = escapeshellarg(gethostbyaddr(USER_IP));

Как вы думаете, имеют ли под собой почву высказанные опасения?

Добавлено спустя 9 минут 50 секунд:
Точнее эту часть строки
Код: Выделить всё
|(' . str_replace('.', '\\.', $host) . ')
жаль что нельзя редактировать свои сообщения.
Ответить


www, функция escapeshellarg Вам не поможет. Во-первых, она добавляет кавычки, а они там совсем не нужны. Во-вторых, если в строке встретится апостроф, который должен будет закрыть строку вызова команды или \n, то она их пропустит.
В-третьих, если туда что-то встроится, то останутся неотработанные строки. И остаток строки выдаст ошибку, которая запишется в файл dump.txt и придёт Вам на почту. И Вы бы это увидели. Очень маловероятно.

А Вы что-нибудь слышали о вставке произвольного кода в обратный DNS-запрос?

В любом случае, можно вообще убрать проверку на хост. Это будет корректнее.
Ответить


Добрый день Андрей

По шагам сможете объяснить, как подключить Ваш скрипт?
Что было написано в инструкции на главной странице скрипта - сделал. Не робит.
Из того, что написано в php файлах как инструкция - не понял. очень много лишнего по моему мнению опять - же.
Ответить


Ничего не понял

Ничего не понял из того, что написано м комментариях к скрипту и на главной странице скрипта. Что создавать нужно для подключения? Где создавать? Что за файлы access.txt о которых не сказано на главной странице скрипта, но сказано в комментариях... Будьте добры, объясните как все-таки правильно подключить скрипт
Ответить


abc, на мой взгляд, я понятно объяснил.
Файл access.txt создаётся автоматически. Вам об этом беспокоится не надо.

Попробуйте почитать переписку в этой теме. Может быть понятнее станет. Либо может быть появятся конкретные вопросы, кроме "Не робит".
Ответить


Спасибо. Разобрался вроде.
На сайте написано что поддержка данного скрипта будет прекращена. Вопросы по скрипту можно будет задавать? Или это в равной мере относиться и к ответам?
Андрей, Вы можете подсказать, какие отличия будут у нового скрипта от этого и когда примерно ждать его появления?
Ответить


abc писал(а):На сайте написано что поддержка данного скрипта будет прекращена. Вопросы по скрипту можно будет задавать? Или это в равной мере относиться и к ответам?

Вопросы задавать можно. Буду отвечать, если они не требуют серьёзных разбирательств. Изменять ничего не буду и дорабатывать в этом скрипте.

abc писал(а):Андрей, Вы можете подсказать, какие отличия будут у нового скрипта от этого и когда примерно ждать его появления?

Прежде всего, у нового скрипта появился брат - анализатор логов. Скачиватели поняли, что нужно запрашивать страницы не часто, и начинают обходить скрипт. Кроме того, в конце декабря прошлого года на сайт была DDOS-атака из разных источников, поэтому скрипт не смог защитить сайт, т.к. больше трёх раз с одного адреса не обращались.
Новая версия защиты интегрируется в мой самописный фреймворк. Я не думаю, что она будет в свободном доступе, т.к. секретность алгоритмов защиты сайта - залог успешной его работы. Чем позже хакеры узнают о том, как всё работает, тем дольше не придётся модифицировать защиту.
Ответить


Пытаюсь настроить Ваш скрипт

Андрей здравствуйте.
Пытаюсть настроить Ваш скрипт. Прописываю:
/*Количество запрещённых повторений, после которых ip-адрес
будет забанен.*/
Код: Выделить всё
define ('AD_TRYING', 5);

/*Интервал времени, когда считается, что человек всё ещё находится на сайте в минутах (5 мин).*/
Код: Выделить всё
define ('AD_LIVE_TIME', 30);

/* Выбранный режим: 0 - не использовать капчу;*/ define ('AD_CHECK_MODE', 0);

- Очищаю лог, удаляю файл с ip-адресом, т.е. сбрасываю всё.
- 2 раза кликаю по ссылкам.
- Вывод на экран: Сервер временно не может в данный момент выдать запрашиваемую Вами страницу. Через 40 сек. запрашиваемая Вами страница будет показана. Если это не произошло, нажмите клавишу F5.

В настройках скрипта не увидел цифры 40.

В связи с этим возникли вопросы:
1) Почему 40 сек.
1) Если Вас не затруднит, поясните пожалуйста скажем так на "живом примере", за что отвечают переменные указанные выше и какие переменные необходимо настроить, не включая в работу скрипта каптчу

Под "живым примером" имелось ввиду:
Если посетительробот обращается 5 раз к сайту в течении 60 секунд, то ему выведется страница с предупреждением на 30 секунд, если он еще, столько-то раз обратится к сайту, то будет уже забанен в .htaccess.
Спасибо.

Добавлено спустя 20 минут 21 секунду:
А..Я писал(а):abc, на мой взгляд, я понятно объяснил.
Файл access.txt создаётся автоматически. Вам об этом беспокоится не надо.


Файл сам не создается, пока сам его не создашь. Хотя логи пишутся.
п.с. На сервере у меня, есть другие скрипты, которые сами создают свои лог-файлы. Это я к тому, что нет ограничений на запись и создание логов
Ответить


Пред.След.

Вернуться в PHP-скрипты



Кто сейчас на сайте

Зарегистрированные пользователи: Bing [Bot]