Минусовки на DJ-X.info
Страницы: 1   Вниз

Автор Тема: Анти Робо-Зомби мод  (Прочитано 15783 раз)

0 Пользователей и 1 Гость просматривают эту тему.

DJ-X

  • Музыкант №1
  • Ветеран
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 151
    • Просмотр профиля
    • Минусовки Бесплатно !
Анти Робо-Зомби мод
« : 06 Январь 2012, 21:00:52 »


Про версия - Top 100 - STOP CONTROL PRO платная теперь с поддержкой кеширования Nginx!
Боты ходят по статической версии сайта которая периодически сама обновляется!
Это позволяет во много раз сэкономить системные ресурсы особенно на тяжелых сайтах с высокой посещаемостью.
Многие виды не целенаправленных DDOS атак которые направленны на создание паразитной нагрузки становятся не страшны.

Анти Xrumer 1.0 Lite - бесплатная!

Представьте себе робота у которого одна регистрация на сайте занимает 15 секунд,
работающего на скорости 100.0 Мбит/с, он использует прокси серверы на зараженных
компьютерах который загружает с сайта лишь php файлы и одну картинку Captcha и
который может успешно регистрироваться на всех стандартных сайтах!
Вы наверное думаете что это за программы такие и как они распознают капчу?
Программа может быть любая которая поддерживает GET и POST запросы и умеет сохранять и отправлять
COOKIES и отправлять картинку на специально сделанный для этого сервис распознавания капчи и получить уже распознанный текст!
Первое что пришло на ум это PHP скрипты и Wget этот список каждый сможет дополнить сам.


Специально от этой напасти создан эффективно-примитивный - Анти Xrumer 1.0 Lite!
Защита сайта от автоматических регистраций программами (SEO) спамеров.

Если вам уже надоело проверять человек это или робот по 100 профилей пользователей
ежедневно значит Анти-Робо-Зомби мод это то что вам нужно!
Есть конечно полно других похожих модов которые основаны на базе IP адресов,
а если есть база IP адресов - значит её можно искусственно накручивать пока все IP
не будут в чёрном списке и тогда уже точно никто не сможет зарегистрироваться!
На пример Honeypot .
Но на одном IP может быть много компьютеров как зараженных так и нет.
И человек не сможет зарегистрироваться и войти если зайдёт с такого IP.
Немного веселее Stop Forum Spam - спамеры быстро вычисляют
на каких сайтах они спалились и начинают заниматься на этих сайтах накруткой!

Мы сделали всё на много проще!
Будем использовать их слабости против них!

На данном этапе развития программ для автоматической
регистрации на сайтах данный способ будет очень эффективен!
Принцип работы такой - если робот не загружает все картинки с нашего сайта значит он не получит
Cookies которое поставит картинка или javascript, а значит и не сможет зарегистрироваться на сайте.
Проанализировав логи сервера я увидел что ни одна программа для автоматической регистрации не загружает картинки и javascript - кроме капчи.
В нашу таблицу так-же записываются все Cookies отправляемые роботами - зомби при регистрации и входе на сайт.
Пока ни один робот не пытался регистрироваться с Cookies Stop_Control=1, а это значит что у роботов нет шансов зарегистрироваться.
Зарегистрироваться смогут только люди с включенными картинками в браузере получившие Cookies Stop_Control=1.
Картинка устанавливает Cookies в браузер пользователя - она есть на этом сайте на странице регистрации.
Некоторые роботы пытаются регистрироваться вообще без Cookies :)

Анти-Робо-Зомби мод успешно борется с Роботами-Зомби на наших сайтах!
Теперь капчу можно сделать понятной не только для роботов но и для людей.

Смотрите статистику форума.

1: Создаём картинку которая не будет кешироваться в браузере и которая будет устанавливать cookies в браузере.
Картинка STOP контроль устанавливает Cookies в ваш браузер.
Её нужно поставить на страницу входа и регистрации перед отправкой последнего post запроса когда уже всё заполнено или на все страницы сайта.

Это пишем в файл .htaccess для того что бы было правильное расширение у картинки не https://dj-x.info/foto/png.php , а https://dj-x.info/foto/png.png


RewriteEngine On
RewriteRule png.png png.php [NC]

Создаём файл png.php

error_reporting(NULL);
// Устанавливаем Cookies в браузере пользователя
if (strstr(@$_SERVER['HTTP_COOKIE'], 'Stop_Control'))
   {
// Если Cookies Stop_Control=1 уже есть тогда ничего не делаем.
   }
   else
   {
// Если Cookies Stop_Control=1 нет тогда ставим его.
    SetCookie("Stop_Control","1", "0", "/" );
    }
/*
Это пишем в .htaccess для того что бы было правильное расширение у картинки png.php - filename.png
RewriteEngine On
RewriteRule filename\.png png.php [NC]
*/
// PHP файл картинка и .htaccess должны быть в одной папке.
// Здесь пишем имя того файла который будем показывать.
$file = ("Stop_Control.png");
// Просмотр http-заголовков https://chrome.google.com/webstore/search/HTTP%20Headers?hl=ru
// Совместимость новых функций PHP 5.3 PHP 5.4 со старыми версиями PHP 5.2.17
if (strnatcmp(phpversion(),'5.2.17') <= 0)
{
// Если у вас PHP/5.2 - прячем версию PHP X-Powered-By: PHP/5.2 - будет видно только X-Powered-By: и то что мы напишим.
header('x-powered-by: DJ-X');
}
else
{
// Удаляем X-Powered-By: PHP/5.3.8 для того что бы запутать роботов - работает только в PHP 5.3 и старше.
header_remove("x-powered-by");
}
// Отключаем кеширование в браузере.
header('Pragma: no-cache');
// Время создания файла
header('Last-Modified: Thu, 01 Jan 2012 01:01:15 GMT');
// Уберите эти две чёрточки // перед тем типом файла который будете использовать
// Тип файла для картинки .png
header('Content-type: image/png');
// Тип файла для картинки .jpg
//header('Content-type: image/jpeg');
// Тип файла для картинки .gif
//header("Content-type:  image/gif");
// Тип файла для javascript .js
//header('Content-type: application/x-javascript');
// Единица измерения
header('Accept-Ranges: bytes');
// Размер файла
header ("Content-Length: ".filesize($file));
// Показываем картинку Stop_Control.png
readfile($file);

Это просто картинка без cookies https://dj-x.info/foto/Stop_Control.png которую мы показываем через png.php файл.
PHP файл картинка и .htaccess должны быть в одной папке.
Скачать уже собранную картинку.

Проверить  http-заголовки получившейся картинки можно здесь установив расширение для Google Chrome!
Должно получиться примерно так.
HTTP/1.1 200 OK
Server: nginx/1.0.9
Date: Wed, 11 Jan 2012 16:43:38 GMT
Content-Type: image/png
Connection: keep-alive
X-Powered-By: DJ-X
Pragma: no-cache
Last-Modified: Thu, 01 Jan 2012 01:01:15 GMT
Accept-Ranges: bytes
Content-Length: 10139
Set-Cookie: Stop_Control=1; path=/


2: Проверяем есть ли Cookies Stop_Control=1 при отправке POST запроса.
Для форума SMF нужно в index.php в самом верху вставить этот код:


Это нужно для проверки при регистрации - обязательно.
Нужно будет предупредить человека: пишем в agreement.txt
Для успешной регистрации в вашем браузере должны быть включены картинки!
Включите картинки и обновите страницу.
Добро пожаловать!


Измените =login2 и =register2 на свои POST URL входа и регистрации .
Это универсальный код который подойдёт для всех страниц регистрации.


// Не регистрировать ошибки
error_reporting(NULL);
// Это нужно для проверки при регистрации - обязательно.
   if (strstr($_SERVER['REQUEST_URI'], '=register2'))
   {
// Это сработает если в POST запросе будет email.
    if (isset($_POST['email']))
   {
// Проверяем Cookies в браузере пользователя
if (strstr(@$_SERVER['HTTP_COOKIE'], 'Stop_Control=1'))
   {
// Если Cookies Stop_Control=1 уже есть тогда ничего не делаем.
   }
   else
   {
// Если Cookies Stop_Control=1 нет тогда перенаправляем робота на страницу с предупреждением
// и с инструкциями что нужно сделать чтобы зарегистрироваться и войти .
   header("location: /warning.php");
// Останавливаемся
   exit();
    }   
    }
   else
   {
    }
    }

Периодически меняйте имя картинки и название cookies Stop_Control=1 на что нибудь своё.
Для правильной настройки нам понадобится расширение для Google Chrome Edit This Cookie и HTTP Headers.
Обсуждаем, предлагаем, помогаем здесь.


Обновлено 20.03.2013
Добавлено error_reporting(NULL); теперь в php-errors.log не будут записываться ошибки!
Совместимость новых функций PHP 5.3 PHP 5.4 со старыми версиями PHP 5.2.17
Добавлен в код знак @ теперь ошибок не будет!

Разработка не стандартных решений.
Сделано компанией - Чикон Продакшнс DJ-X™ ® ©
Записан

DJ-X

  • Музыкант №1
  • Ветеран
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 151
    • Просмотр профиля
    • Минусовки Бесплатно !
Re:Анти Робо-Зомби мод
« Ответ #1 : 31 Март 2012, 16:03:27 »

Очень полезное дополнение для серверов IIS 7-8!
Лимит POST запросов до 79 байт без COOKIES - Stop_Control=1
На сервере должен быть установлен URL Rewrite Module 2.0!

Спасибо за помощь - Forums IIS 7 & IIS 8.

Вставляем код между тегами
<rewrite>
</rewrite>
В файле web.config в корне сайта.

<rule name="POST big Blocked" stopProcessing="true">
  <match url=".*" negate="false" />
  <conditions>
                        <add input="{HTTP_COOKIE}" pattern=".*Stop_Control=1" negate="true" />
                        <add input="{REQUEST_METHOD}" pattern="^POST$" />
                        <add input="{HTTP_CONTENT_LENGTH}" matchType="Pattern" pattern="^[0-9]$|^[0-7][0-9]$|^79$" ignoreCase="true" negate="true" />
  </conditions>
  <action type="AbortRequest" />
</rule>

Для сайтов на IIS 7-8 достаточно поставить нашу картинку и это правило!
Здесь много разных правил для  URL Rewrite Module 2.0 - Переопределение URL-адресов на сервере IIS 7.5.
Записан

DJ-X

  • Музыкант №1
  • Ветеран
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 151
    • Просмотр профиля
    • Минусовки Бесплатно !
Re:Анти Робо-Зомби мод
« Ответ #2 : 20 Март 2013, 21:41:42 »


Разрабатывается новая конфигурация сервера Stop Control Pro + Nginx.
Что нового - управление мощными средствами сервера Nginx из PHP скриптов!
В результате получится сайт который способен выдерживать практически любые перегрузки даже на слабых VDS!
На обычном виртуальном хостинге возможности Stop Control Pro были ограничены конфигурацией сервера.
Поэтому я переехал на дешевый VDS и теперь могу делать то что нельзя было сделать раньше.
А это: управление кешированием сервера из PHP скриптов! Что позволяет выдерживать очень большой наплыв пользователей и роботов зомби
даже на очень прожорливых движках и на очень слабых VDS. Главное что бы VDS выдерживал нажатие F5 хотябы 10 секунд.
Эксперименты проводятся сразу на двух VDS с операционными системами FreeBSD и Ubuntu с SMF и Joomla!
Сервер способен различать гостей сайта и пользователей и предоставлять гостям статические страницы, а пользователям динамические!
Это было достигнуто с помощью взаимодействия между специальной конфигурацией сервера и изменённой конфигурацией движка SMF.
Записан

Sixserg

  • Новичок
  • *
  • Оффлайн Оффлайн
  • Сообщений: 1
    • Просмотр профиля
Re:Анти Робо-Зомби мод
« Ответ #3 : 13 Апрель 2013, 15:29:54 »

Спасибо за хороший и полезный пост , я попробую .
Записан

DJ-X

  • Музыкант №1
  • Ветеран
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 151
    • Просмотр профиля
    • Минусовки Бесплатно !
Re:Анти Робо-Зомби мод
« Ответ #4 : 13 Апрель 2013, 16:11:46 »

Пожалуйста. Если что то не понятно спрашивайте.
С момента написания Анти Робо-Зомби мода в коде сайта много чего изменилось и много чего добавилось.
Добавлена стена перед входом и регистрацией - так как продвинутые хрумеры понимают javaskript - замечено в Joomla.
Добавлено управляемое кеширование средствами Nginx - все гости и роботы смотрят кешированые статические страницы
которые периодически обновляются из динамических. Что позволило значительно снизить нагрузку на PHP и Mysql,
убрал PHP сессию для не зарегистрированных и не вошедших гостей смотрящих кеш.

В SMF в файле /Sources/Load.php
ищем session_start();  и меняем на мой код.
//session_start();

    if (strstr($_COOKIE['Stop_Control'], '1'))
   {
    session_start();
    }

Если в PHP включен gzip тогда страницы Nginx сохраняет уже сжатыми он их каждый раз не сжимает по новому.
Теперь роботы-зомби ходят по сайту  без COOKIES по статическим страницам!
Проверялось на высоко посещаемом и очень прожорливом сайте.
Записан

DJ-X

  • Музыкант №1
  • Ветеран
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 151
    • Просмотр профиля
    • Минусовки Бесплатно !
Анти Робо-Зомби мод
« Ответ #5 : 17 Ноябрь 2014, 17:02:07 »

Придумал конфигурацию Nginx для картинок которые ставят Cookies в браузер без PHP.
Это будет полезно на очень посещаемых сайтах. Картинка не кешируется браузером.
        location /foto/png.png/ {
            root   /home/user/dj-x.info;
            index index.html index.htm;
error_page  404              /404.html;
error_page  403              /403.html;

    # Cookies & Header
    add_header Pragma "no-cache";
            add_header Set-Cookie "Stop_Control=1;Path=/;Max-Age=+86400";
    add_header Last-Modified $date_gmt;
            etag off;

}

Пример этой картинки.
В движке сайта нужно только найти session_start(); и заменить на код что ниже.
Записан
Страницы: 1   Вверх
 

Страница сгенерирована за 0.129 секунд. Запросов: 23.