<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://1gb.ua/wiki/skins/common/feed.css?63"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>Простой скрипт блокировки скачивания всего сайта - История изменений</title>
		<link>http://1gb.ua/wiki/index.php?title=%D0%9F%D1%80%D0%BE%D1%81%D1%82%D0%BE%D0%B9_%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82_%D0%B1%D0%BB%D0%BE%D0%BA%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8_%D1%81%D0%BA%D0%B0%D1%87%D0%B8%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B2%D1%81%D0%B5%D0%B3%D0%BE_%D1%81%D0%B0%D0%B9%D1%82%D0%B0&amp;action=history</link>
		<description>История изменений этой страницы в вики</description>
		<language>ru</language>
		<generator>MediaWiki 1.10.1</generator>
		<lastBuildDate>Sun, 03 May 2026 17:18:32 GMT</lastBuildDate>
		<item>
			<title>Dmih: Правки 77.239.235.129 (обсуждение) откачены к версии Dmach</title>
			<link>http://1gb.ua/wiki/index.php?title=%D0%9F%D1%80%D0%BE%D1%81%D1%82%D0%BE%D0%B9_%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82_%D0%B1%D0%BB%D0%BE%D0%BA%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8_%D1%81%D0%BA%D0%B0%D1%87%D0%B8%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B2%D1%81%D0%B5%D0%B3%D0%BE_%D1%81%D0%B0%D0%B9%D1%82%D0%B0&amp;diff=4914&amp;oldid=prev</link>
			<description>&lt;p&gt;Правки &lt;a href=&quot;/wiki/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:Contributions/77.239.235.129&quot; title=&quot;Служебная:Contributions/77.239.235.129&quot;&gt;77.239.235.129&lt;/a&gt; (&lt;a href=&quot;/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:77.239.235.129&amp;amp;action=edit&quot; class=&quot;new&quot; title=&quot;Обсуждение участника:77.239.235.129&quot;&gt;обсуждение&lt;/a&gt;) откачены к версии &lt;a href=&quot;/wiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Dmach&quot; title=&quot;Участник:Dmach&quot;&gt;Dmach&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая статья&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Скрипт написан для решения проблем клиентов хостинг-провайдера [http://www.1Gb.ru www.1Gb.ru]&lt;br /&gt;
связанных с нагрузкой на сервер в результате попыток скачать сайт полностью&lt;br /&gt;
программой скачивания сайта. Архив со скриптом можно взять по ссылке &lt;br /&gt;
[http://dmach.ru/prog/wgetblock/wgetblock.rar http://dmach.ru/prog/wgetblock/wgetblock.rar].&lt;br /&gt;
&lt;br /&gt;
== Теория ==&lt;br /&gt;
&lt;br /&gt;
В страницу сайта вы размещаете скрытую ссылку таким образом, что &amp;quot;живой&amp;quot;&lt;br /&gt;
человек никогда не неё не кликнет. Программа скачивания сайта не знает о&lt;br /&gt;
такой хитрости и обходит все ссылке в коде сайта даже если они оформлены&lt;br /&gt;
таким образом, что визуально на странице не видны. Когда программа которая&lt;br /&gt;
обходит ваш сайт попадает на такой скрытый скрипт то скрипт точно знает,&lt;br /&gt;
что источник запроса можно блокировать - он создаёт инструкцию по блокировке&lt;br /&gt;
и помещает её в скрипт который прописан для всех страниц сайта записывая&lt;br /&gt;
туда ip-адрес источника атаки. Далее при обработке последующих запросов&lt;br /&gt;
программа доходит только до кода блокировщика, который прекращает выполнение&lt;br /&gt;
запроса по признаку соответствия ip-адреса источника и своей базы с &amp;quot;плохими&amp;quot;&lt;br /&gt;
адресами.&lt;br /&gt;
&lt;br /&gt;
Недостатки:&lt;br /&gt;
&lt;br /&gt;
* Если человек который пытается скачать ваш сайт знает об этой защите - ему не составит труда её обойти указав в настройке программы игнорирование скрытого скрипта-уловителя.&lt;br /&gt;
* Если источник производит запросы к сайту с разных ip-адресов такая хитрость не будет эффективной.&lt;br /&gt;
* Текущая реализация работает только с PHP, если вы используете другие технологии, то оно вам не подойдёт. Однако, не составляет труда написать то же самое под это другое.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Некоторые достоинства:&lt;br /&gt;
&lt;br /&gt;
* Скрипт очень простой, вы можете модифицировать его по своему желанию для ваших потребностей или использовать в неизменном виде.&lt;br /&gt;
* Скрипт может отсылать уведомления на почтовый адрес при блокировках.&lt;br /&gt;
&lt;br /&gt;
== Инструкция по установке ==&lt;br /&gt;
   &lt;br /&gt;
Для установки нужно выполнить следующие действия:&lt;br /&gt;
&lt;br /&gt;
* Подключить блокирующий модуль в скрипты сайта&lt;br /&gt;
* Создать скрытую ссылку на модуль уловитель.&lt;br /&gt;
&lt;br /&gt;
Испытания скрипта были проведены для программ [http://www.tenmax.com/teleport/pro/home.htm Teleport Pro] &lt;br /&gt;
и [http://www.gnu.org/software/wget/ wget] - обе программы были успешно &lt;br /&gt;
блокированы.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Подробное описание ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Блокировщик (по умолчанию - block.php) ===&lt;br /&gt;
&lt;br /&gt;
Код вызова блокирующего скрипта должен быть вписан в скрипт php который&lt;br /&gt;
подключается для всех обращений к сайту или к требуемой группе скриптов.&lt;br /&gt;
&lt;br /&gt;
Например, вы можете разместить его в файле index.php, если все обращения&lt;br /&gt;
на сайт идут через него или в файл config.php если он подключается для&lt;br /&gt;
всех скриптов сайта.&lt;br /&gt;
&lt;br /&gt;
Пример подключения блокирующего модуля:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 &lt;br /&gt;
 include '/home/virtwww/w_site_715a5517/http/block.php';&lt;br /&gt;
 &lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Уловитель (по умолчанию - catch.php) ===&lt;br /&gt;
&lt;br /&gt;
Уловитель вам нужно разместить таким образом, что бы живой человек не мог&lt;br /&gt;
попасть на скрипт с ним, это можно сделать, к примеру, пустой ссылкой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;a href='catch.php'&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Что бы обойти вариант, когда человек инициирует повторную скачку сайта &lt;br /&gt;
постарайтесь видоизменять ссылку каждый раз при обращении к странице, например&lt;br /&gt;
дописывая какой-нибудь параметр средствами того же php:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?php &lt;br /&gt;
 &lt;br /&gt;
 print &amp;quot;&amp;lt;a href='catch.php?p=&amp;quot;.rand(1, 100).&amp;quot;'&amp;gt;&amp;lt;/a&amp;gt;&amp;quot;; &lt;br /&gt;
 &lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если ожидать от программы скачивания сайта повышенного интеллекта - что она не &lt;br /&gt;
будет открывать пустые ссылки (вдруг кто такое напишет), можно усложнить &lt;br /&gt;
ссылку скрыв её при помощи CSS а не пустого тела. Например, так:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?php &lt;br /&gt;
 &lt;br /&gt;
 print &amp;quot;&amp;lt;a href='catch.php?p=&amp;quot;.rand(1, 100).&amp;quot;' style='visibility: hidden;'&amp;gt;My photo&amp;lt;/a&amp;gt;&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Можно использовать так же любые другие методы что бы скрыть ссылку на &lt;br /&gt;
уловитель, например размещать кликабельный элемент очень маленького размера&lt;br /&gt;
в неожиданном месте и тому подобное.&lt;br /&gt;
&lt;br /&gt;
Скрипт-уловитель конфигурируется путём задания нужных параметров в теле&lt;br /&gt;
скрипта. Единственный обязательный параметр - $blockScriptPath, полный&lt;br /&gt;
физический путь к скрипту-блокировщику.&lt;br /&gt;
&lt;br /&gt;
=== Меры предосторожности ===&lt;br /&gt;
&lt;br /&gt;
Так как есть вероятность, что на данный скрипт попадёт какая либо поисковая&lt;br /&gt;
система (например [http://www.yandex.ru Яндекс]) и тем самым будет блокирована - нужно принять меры&lt;br /&gt;
предосторожности против этого. В качестве одной из мер - размещение файла&lt;br /&gt;
robots.txt запрещающего индексировать скрипт-уловитель. Пример инструкций&lt;br /&gt;
файла robots.txt ниже:&lt;br /&gt;
&lt;br /&gt;
 User-agent: *&lt;br /&gt;
 Disallow: /catch.php&lt;br /&gt;
&lt;br /&gt;
Если же поисковая система проигнорирует директивы файла robots.txt и&lt;br /&gt;
попадётся в скрипт-уловитель. Чтож, сама виновата. В любом случае, вы сможете&lt;br /&gt;
получить уведомление на электронную почту и быстро снять блокировку.&lt;br /&gt;
&lt;br /&gt;
=== Дополнительные замечания ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Фишка скрипта в отсутствии базы данных где хранятся ip-адреса. Скрипт-уловитель напрямую сам пишет скрипт-блокировщик (вы так же можете редактировать его вручную). Это повышает эффективность решения.&lt;br /&gt;
* Вы можете свободно переименовывать файлы скриптов что бы придать им менее очевидные имена.&lt;br /&gt;
* Вы можете размещать несколько скриптов-уловителей в разных местах и по разному заданных усложняя ручной обход защиты.&lt;br /&gt;
* Если вы будете вручную редактировать скрипт-блокировщик - не дописывайте в него закрывающую конструкцию PHP - ?&amp;gt;, это приведёт к некорректной работе скрипта в целом.&lt;br /&gt;
&lt;br /&gt;
== Обновления скрипта ==&lt;br /&gt;
&lt;br /&gt;
* 08.08.2007 - Первая версия&lt;br /&gt;
* 12.08.2008 - В высылаемое на почту сообщение добавлена ифнормация о домене сайта&lt;br /&gt;
&lt;br /&gt;
== Варианты для других технологий ==&lt;br /&gt;
&lt;br /&gt;
Так же пользователями хостинга [http://www.1Gb.ru 1Gb.ru] были написаны реализации скрипта для других скриптовых технологий:&lt;br /&gt;
&lt;br /&gt;
* ASP.NET - [http://netcode.ru/files/asp.net_block.zip http://netcode.ru/files/asp.net_block.zip], по вопросам работы этого варианта обращайтесь по ICQ 159585&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
&lt;br /&gt;
* [[Проблема блокировки по IP-адресу]]&lt;br /&gt;
* [http://www.kloth.net/internet/bottrap.php How to build a Bot Trap and keep bad bots away from a web site]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Серверная нагрузка]]&lt;/div&gt;</description>
			<pubDate>Mon, 31 May 2010 20:02:25 GMT</pubDate>			<dc:creator>Dmih</dc:creator>			<comments>http://1gb.ua/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:%D0%9F%D1%80%D0%BE%D1%81%D1%82%D0%BE%D0%B9_%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82_%D0%B1%D0%BB%D0%BE%D0%BA%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8_%D1%81%D0%BA%D0%B0%D1%87%D0%B8%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B2%D1%81%D0%B5%D0%B3%D0%BE_%D1%81%D0%B0%D0%B9%D1%82%D0%B0</comments>		</item>
	</channel>
</rss>