Простой скрипт блокировки скачивания всего сайта

Материал из 1GbWiki.

(Различия между версиями)
Перейти к: навигация, поиск
Версия 17:56, 31 мая 2010 (править)
77.239.235.129 (Обсуждение)

← К предыдущему изменению
Текущая версия (20:02, 31 мая 2010) (править) (отменить)
Dmih (Обсуждение | вклад)
м (Правки 77.239.235.129 (обсуждение) откачены к версии Dmach)
 
Строка 1: Строка 1:
-Как 1gb.ru разводит лохов+Скрипт написан для решения проблем клиентов хостинг-провайдера [http://www.1Gb.ru www.1Gb.ru]
-Кризис размножает жуликов с огромной скоростью. А интернет рай для воров и мошенников. Так как получить ответственность за интернет мошенничество крайне сложно. И вот очередной интернет хостер 1gb.ru вышел на ниву жульничества. И добился там превосходных результатов. +связанных с нагрузкой на сервер в результате попыток скачать сайт полностью
-Итак, на главой странице сайта написано о низких ценах и домене в подарок. +программой скачивания сайта. Архив со скриптом можно взять по ссылке
-Однако замечательная фраза содержится на странице отказа от заказа+[http://dmach.ru/prog/wgetblock/wgetblock.rar http://dmach.ru/prog/wgetblock/wgetblock.rar].
-«Вы можете отказаться от услуг хостинга во время текущего периода оплаты, при этом вам будет возвращены неистраченные средства (пропорционально потраченному времени), за вычетом цены регистрации доменов в подарок, если это происходило в текущем периоде оплаты».+ 
-Особенно кайфово звучит фраза: «за вычетом цены регистрации доменов в подарок». Это что за цена регистрации домена в подарок? Как подарок может вообще иметь какую-либо цену? Вот страница для тех кто не верит.+== Теория ==
-http://www.1gb.ru/default.aspx?ti=6&hti=104+ 
-То есть они честно говорят, что их подарок имеет некую цену регистрации. Хорош подарок. Это как парень, отбирающий у девушки свои подарки после расставания.+В страницу сайта вы размещаете скрытую ссылку таким образом, что "живой"
-Сама эта фраза по себе показывает, в чем состоит мошенничество этого ресурса.+человек никогда не неё не кликнет. Программа скачивания сайта не знает о
-Ну ладно хитрый маркетинговый ход скажите вы. Но не все так просто.+такой хитрости и обходит все ссылке в коде сайта даже если они оформлены
-Как только вы закажите там услуги хостинга, то вы выясняете, что 30% времени ваш сайт не работает вообще. Он висит или отвратительно долго грузится. Когда вы начинаете этому возмущаться, то вам предлагают резво вернуть деньги. Но вы должны выполнить следующие условия: «Прежде всего, необходимо убедиться, что в личном кабинете заполнены все реквизиты клиента» +таким образом, что визуально на странице не видны. Когда программа которая
-И тут есть ключевой момент. Если вы заполните эти данные, то на вас сразу же оформят домен. Без этих данных оформить домен они не могут. А как только оформят домен (который дается типа в подарок :-)) вы уже лишитесь 750 рублей. И домен типа обратно перерегистрировать нельзя. И жулик с песнями бежит делить капусту, которую получил продав домен с наваром 350 рублей. А при оптовых ценах еще выше. А вы остаетесь с носом или с доменом. Переплатив за него почти половину стоимости. В любом случае ни о каком хостинге говорить не приходится.+обходит ваш сайт попадает на такой скрытый скрипт то скрипт точно знает,
-А они еще спрашивают сами себя, а почему такие низкие цены? Да вот почему, потому что ничего за эти деньги они не делают. Халявный сыр как известно в мышеловке.+что источник запроса можно блокировать - он создаёт инструкцию по блокировке
 +и помещает её в скрипт который прописан для всех страниц сайта записывая
 +туда ip-адрес источника атаки. Далее при обработке последующих запросов
 +программа доходит только до кода блокировщика, который прекращает выполнение
 +запроса по признаку соответствия ip-адреса источника и своей базы с "плохими"
 +адресами.
 + 
 +Недостатки:
 + 
 +* Если человек который пытается скачать ваш сайт знает об этой защите - ему не составит труда её обойти указав в настройке программы игнорирование скрытого скрипта-уловителя.
 +* Если источник производит запросы к сайту с разных ip-адресов такая хитрость не будет эффективной.
 +* Текущая реализация работает только с PHP, если вы используете другие технологии, то оно вам не подойдёт. Однако, не составляет труда написать то же самое под это другое.
 + 
 + 
 +Некоторые достоинства:
 + 
 +* Скрипт очень простой, вы можете модифицировать его по своему желанию для ваших потребностей или использовать в неизменном виде.
 +* Скрипт может отсылать уведомления на почтовый адрес при блокировках.
 + 
 +== Инструкция по установке ==
 +
 +Для установки нужно выполнить следующие действия:
 + 
 +* Подключить блокирующий модуль в скрипты сайта
 +* Создать скрытую ссылку на модуль уловитель.
 + 
 +Испытания скрипта были проведены для программ [http://www.tenmax.com/teleport/pro/home.htm Teleport Pro]
 +и [http://www.gnu.org/software/wget/ wget] - обе программы были успешно
 +блокированы.
 + 
 + 
 +== Подробное описание ==
 + 
 + 
 +=== Блокировщик (по умолчанию - block.php) ===
 + 
 +Код вызова блокирующего скрипта должен быть вписан в скрипт php который
 +подключается для всех обращений к сайту или к требуемой группе скриптов.
 + 
 +Например, вы можете разместить его в файле index.php, если все обращения
 +на сайт идут через него или в файл config.php если он подключается для
 +всех скриптов сайта.
 + 
 +Пример подключения блокирующего модуля:
 + 
 + <?php
 +
 + include '/home/virtwww/w_site_715a5517/http/block.php';
 +
 + ?>
 + 
 +=== Уловитель (по умолчанию - catch.php) ===
 + 
 +Уловитель вам нужно разместить таким образом, что бы живой человек не мог
 +попасть на скрипт с ним, это можно сделать, к примеру, пустой ссылкой:
 + 
 + <a href='catch.php'></a>
 + 
 +Что бы обойти вариант, когда человек инициирует повторную скачку сайта
 +постарайтесь видоизменять ссылку каждый раз при обращении к странице, например
 +дописывая какой-нибудь параметр средствами того же php:
 + 
 + <?php
 +
 + print "<a href='catch.php?p=".rand(1, 100)."'></a>";
 +
 + ?>
 + 
 +Если ожидать от программы скачивания сайта повышенного интеллекта - что она не
 +будет открывать пустые ссылки (вдруг кто такое напишет), можно усложнить
 +ссылку скрыв её при помощи CSS а не пустого тела. Например, так:
 + 
 + <?php
 +
 + print "<a href='catch.php?p=".rand(1, 100)."' style='visibility: hidden;'>My photo</a>";
 +
 + ?>
 + 
 + 
 +Можно использовать так же любые другие методы что бы скрыть ссылку на
 +уловитель, например размещать кликабельный элемент очень маленького размера
 +в неожиданном месте и тому подобное.
 + 
 +Скрипт-уловитель конфигурируется путём задания нужных параметров в теле
 +скрипта. Единственный обязательный параметр - $blockScriptPath, полный
 +физический путь к скрипту-блокировщику.
 + 
 +=== Меры предосторожности ===
 + 
 +Так как есть вероятность, что на данный скрипт попадёт какая либо поисковая
 +система (например [http://www.yandex.ru Яндекс]) и тем самым будет блокирована - нужно принять меры
 +предосторожности против этого. В качестве одной из мер - размещение файла
 +robots.txt запрещающего индексировать скрипт-уловитель. Пример инструкций
 +файла robots.txt ниже:
 + 
 + User-agent: *
 + Disallow: /catch.php
 + 
 +Если же поисковая система проигнорирует директивы файла robots.txt и
 +попадётся в скрипт-уловитель. Чтож, сама виновата. В любом случае, вы сможете
 +получить уведомление на электронную почту и быстро снять блокировку.
 + 
 +=== Дополнительные замечания ===
 + 
 + 
 +* Фишка скрипта в отсутствии базы данных где хранятся ip-адреса. Скрипт-уловитель напрямую сам пишет скрипт-блокировщик (вы так же можете редактировать его вручную). Это повышает эффективность решения.
 +* Вы можете свободно переименовывать файлы скриптов что бы придать им менее очевидные имена.
 +* Вы можете размещать несколько скриптов-уловителей в разных местах и по разному заданных усложняя ручной обход защиты.
 +* Если вы будете вручную редактировать скрипт-блокировщик - не дописывайте в него закрывающую конструкцию PHP - ?>, это приведёт к некорректной работе скрипта в целом.
 + 
 +== Обновления скрипта ==
 + 
 +* 08.08.2007 - Первая версия
 +* 12.08.2008 - В высылаемое на почту сообщение добавлена ифнормация о домене сайта
 + 
 +== Варианты для других технологий ==
 + 
 +Так же пользователями хостинга [http://www.1Gb.ru 1Gb.ru] были написаны реализации скрипта для других скриптовых технологий:
 + 
 +* ASP.NET - [http://netcode.ru/files/asp.net_block.zip http://netcode.ru/files/asp.net_block.zip], по вопросам работы этого варианта обращайтесь по ICQ 159585
 + 
 +== См. также ==
 + 
 +* [[Проблема блокировки по IP-адресу]]
 +* [http://www.kloth.net/internet/bottrap.php How to build a Bot Trap and keep bad bots away from a web site]
 + 
 +[[Категория:Серверная нагрузка]]

Текущая версия

Скрипт написан для решения проблем клиентов хостинг-провайдера www.1Gb.ru связанных с нагрузкой на сервер в результате попыток скачать сайт полностью программой скачивания сайта. Архив со скриптом можно взять по ссылке http://dmach.ru/prog/wgetblock/wgetblock.rar.

Содержание

[править] Теория

В страницу сайта вы размещаете скрытую ссылку таким образом, что "живой" человек никогда не неё не кликнет. Программа скачивания сайта не знает о такой хитрости и обходит все ссылке в коде сайта даже если они оформлены таким образом, что визуально на странице не видны. Когда программа которая обходит ваш сайт попадает на такой скрытый скрипт то скрипт точно знает, что источник запроса можно блокировать - он создаёт инструкцию по блокировке и помещает её в скрипт который прописан для всех страниц сайта записывая туда ip-адрес источника атаки. Далее при обработке последующих запросов программа доходит только до кода блокировщика, который прекращает выполнение запроса по признаку соответствия ip-адреса источника и своей базы с "плохими" адресами.

Недостатки:

  • Если человек который пытается скачать ваш сайт знает об этой защите - ему не составит труда её обойти указав в настройке программы игнорирование скрытого скрипта-уловителя.
  • Если источник производит запросы к сайту с разных ip-адресов такая хитрость не будет эффективной.
  • Текущая реализация работает только с PHP, если вы используете другие технологии, то оно вам не подойдёт. Однако, не составляет труда написать то же самое под это другое.


Некоторые достоинства:

  • Скрипт очень простой, вы можете модифицировать его по своему желанию для ваших потребностей или использовать в неизменном виде.
  • Скрипт может отсылать уведомления на почтовый адрес при блокировках.

[править] Инструкция по установке

Для установки нужно выполнить следующие действия:

  • Подключить блокирующий модуль в скрипты сайта
  • Создать скрытую ссылку на модуль уловитель.

Испытания скрипта были проведены для программ Teleport Pro и wget - обе программы были успешно блокированы.


[править] Подробное описание

[править] Блокировщик (по умолчанию - block.php)

Код вызова блокирующего скрипта должен быть вписан в скрипт php который подключается для всех обращений к сайту или к требуемой группе скриптов.

Например, вы можете разместить его в файле index.php, если все обращения на сайт идут через него или в файл config.php если он подключается для всех скриптов сайта.

Пример подключения блокирующего модуля:

<?php

include '/home/virtwww/w_site_715a5517/http/block.php';

?>

[править] Уловитель (по умолчанию - catch.php)

Уловитель вам нужно разместить таким образом, что бы живой человек не мог попасть на скрипт с ним, это можно сделать, к примеру, пустой ссылкой:

<a href='catch.php'></a>

Что бы обойти вариант, когда человек инициирует повторную скачку сайта постарайтесь видоизменять ссылку каждый раз при обращении к странице, например дописывая какой-нибудь параметр средствами того же php:

<?php 

print "<a href='catch.php?p=".rand(1, 100)."'></a>"; 

?>

Если ожидать от программы скачивания сайта повышенного интеллекта - что она не будет открывать пустые ссылки (вдруг кто такое напишет), можно усложнить ссылку скрыв её при помощи CSS а не пустого тела. Например, так:

<?php 

print "<a href='catch.php?p=".rand(1, 100)."' style='visibility: hidden;'>My photo</a>";

?>


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

Скрипт-уловитель конфигурируется путём задания нужных параметров в теле скрипта. Единственный обязательный параметр - $blockScriptPath, полный физический путь к скрипту-блокировщику.

[править] Меры предосторожности

Так как есть вероятность, что на данный скрипт попадёт какая либо поисковая система (например Яндекс) и тем самым будет блокирована - нужно принять меры предосторожности против этого. В качестве одной из мер - размещение файла robots.txt запрещающего индексировать скрипт-уловитель. Пример инструкций файла robots.txt ниже:

User-agent: *
Disallow: /catch.php

Если же поисковая система проигнорирует директивы файла robots.txt и попадётся в скрипт-уловитель. Чтож, сама виновата. В любом случае, вы сможете получить уведомление на электронную почту и быстро снять блокировку.

[править] Дополнительные замечания

  • Фишка скрипта в отсутствии базы данных где хранятся ip-адреса. Скрипт-уловитель напрямую сам пишет скрипт-блокировщик (вы так же можете редактировать его вручную). Это повышает эффективность решения.
  • Вы можете свободно переименовывать файлы скриптов что бы придать им менее очевидные имена.
  • Вы можете размещать несколько скриптов-уловителей в разных местах и по разному заданных усложняя ручной обход защиты.
  • Если вы будете вручную редактировать скрипт-блокировщик - не дописывайте в него закрывающую конструкцию PHP - ?>, это приведёт к некорректной работе скрипта в целом.

[править] Обновления скрипта

  • 08.08.2007 - Первая версия
  • 12.08.2008 - В высылаемое на почту сообщение добавлена ифнормация о домене сайта

[править] Варианты для других технологий

Так же пользователями хостинга 1Gb.ru были написаны реализации скрипта для других скриптовых технологий:

[править] См. также

Личные инструменты