Очистка веб-страниц, известная как очистка содержимого, очистка данных, сбор данных в Интернете или извлечение веб-данных, представляет собой способ извлечения данных с веб-сайтов, предпочтительно с использованием программы, которая отправляет несколько HTTP-запросов, эмулирует поведение человека, получает ответы и извлекает данные. необходимые данные из них. Современные веб-скребки на основе графического интерфейса, такие как Kimono, позволяют выполнять эту задачу без каких-либо знаний в области программирования.
Если вы сталкиваетесь с проблемой извлечения контента другими пользователями с одного из ваших веб-сайтов, существует множество способов обнаружения веб-скребков — Google Webmaster Tools и Feedburner, если назвать несколько инструментов.
В этой статье мы обсудим несколько способов усложнить жизнь этих скребков, используя файлы .htaccess в Apache.
Файл .htaccess (гипертекстовый доступ) — это текстовый файл конфигурации для веб-серверов, который переопределяет глобальные настройки сервера для каталога, в котором находится файл. Они могут быть инновационно использованы для предотвращения соскоба сети.
Прежде чем мы обсудим конкретные методы, позвольте мне прояснить один небольшой факт: если что-то является общедоступным, его можно удалить . Шаги, которые мы здесь обсуждаем, могут только усложнить, а не сделать невозможным. Тем не менее, что бы вы сделали, если кто-то достаточно умен, чтобы обойти все ваши фильтры? У нас тоже есть решение.
Начало работы с .htaccess
Поскольку использование файлов .htaccess включает проверку Apache и чтение всех файлов .htaccess при каждом запросе, он обычно отключен по умолчанию. Существуют разные процессы, чтобы включить его в Ubuntu , OS X и Windows . Ваши файлы .htaccess будут интерпретироваться Apache только после того, как вы их включите, или они будут просто проигнорированы.
Далее, в большинстве наших случаев использования мы будем использовать RewriteEngine
of Apache, который является частью модуля mod_rewrite
При необходимости вы можете проверить подробное руководство по настройке mod_rewrite для Apache или общее руководство по .htaccess .
После того, как вы их выполнили, вы готовы приступить к обсуждению решений по работе со скребками контента. Если вы не выполнили ни один из этих шагов успешно, Apache проигнорирует ваши файлы .htaccess или выдаст ошибку при перезапуске после внесения изменений.
Предотвратить Hotlinking
Если кто-то очистит ваш контент, весь ваш встроенный HTML останется прежним. Это означает, что ссылки на изображения, которые были частью вашего контента (и, скорее всего, размещены на вашем домене), остаются прежними. Если скребок захочет разместить контент на другом сайте, изображение все равно будет ссылаться на первоисточник. Это называется хотлинкинг. Горячая ссылка стоит вам пропускной способности, потому что каждый раз, когда кто-то открывает сайт скребка, ваше изображение загружается.
Вы можете предотвратить хотлинкинг , добавив следующие строки в ваш файл .htaccess.
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
# domains that can link to your content (images here)
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mysite.com [NC]
# show no image when hotlinked
RewriteRule \.(jpg|png|gif)$ – [NC,F,L]
# Or show an alternate image
# RewriteRule \.(jpg|png|gif)$ http://mysite.com/forbidden_image.jpg [NC,R,L]
Некоторые заметки о коде:
- Включение
RewriteEngine
-
RewriteCond
%{HTTP_REFERER}
- Затем мы сопоставляем его с нашим собственным доменом
mysite.com
Мы добавляем(www\.)
mysite.com
www.mysite.com
Точно так же наш код охватываетhttp
https
- Затем мы проверяем, был ли запрошен файл
jpg
png
gif
-
NC
F
403 Forbidden
R
L
- Обратите внимание, что вы должны применять только одно из приведенных выше правил (либо ошибка
403
Это потому, что как толькоL
В приведенном выше примере кода метод альтернативного изображения закомментирован.
Как веб-скребки могут обойти это?
Одним из способов, с помощью которого веб-скребок может обойти это препятствие, является загрузка изображений, когда они встречаются с ними в HTML-коде. В таком случае может быть применена проверка регулярного выражения, загруженные изображения и ссылки на изображения изменены при сохранении данных в системе.
Разрешить или заблокировать запросы с определенных IP-адресов
Если вам случится определить источник запросов веб-скребка (обычно это неестественно большое количество запросов с одного и того же IP-адреса), вы можете заблокировать запросы с этого IP-адреса.
Order Deny
Deny from xxx.xxx.xxx.xxx
В приведенном выше коде (и в других примерах в этой статье) вы замените xxx.xxx.xxx.xxx
Если вы действительно параноики по поводу безопасности, вы можете отклонить запросы со всех IP-адресов и выборочно разрешить из белого списка IP-адресов:
order deny,allow
Deny from all
# IP Address whitelist
allow from xx.xxx.xx.xx
allow from xx.xxx.xx.xx
Одним из вариантов использования этой техники (не связанной с очисткой веб-страниц) является блокирование доступа к каталогу wp-admin
В таком случае вы разрешаете запросы только с вашего IP-адреса, исключая возможность взлома вашего сайта через wp-admin.
Как веб-скребки могут обойти это?
Если веб-скребок имеет доступ к прокси, он может распределять свои запросы по списку IP-адресов, чтобы избежать ненормальной активности с одного IP-адреса.
Для объяснения: допустим, кто-то очищает ваш сайт от IP-адреса 1.1.1.1. Таким образом, вы блокируете 1.1.1.1, используя .htaccess. Теперь, если скребок имеет доступ к прокси-серверу 2.2.2.2, он направляет свой запрос через 2.2.2.2, поэтому вашему серверу кажется, что запрос поступил из 2.2.2.2. Таким образом, несмотря на блокировку 1.1.1.1, скребок все еще может получить доступ к ресурсу.
Таким образом, если скребок имеет доступ к тысячам этих прокси, он может стать необнаружимым, если он отправляет запросы в меньшем количестве от каждого прокси.
Перенаправление запросов с IP-адреса
Вы можете не только заблокировать любой IP-адрес, вы также можете перенаправить их на другую страницу:
RewriteCond %{REMOTE_ADDR} xxx\.xxx\.xxx\.
RewriteRule .* http://mysite.com [R,L]
Если вы перенаправите их на статический сайт, скорее всего, скребок это выяснит. Однако вы можете сделать еще один шаг и сделать что-то более инновационное. Для этого вам нужно понять, как очищается ваш контент.
Соскоб в сети — это систематическая процедура. Он включает изучение шаблонов URL и отправку запросов на все возможные страницы на сайте. Например, если вы являетесь пользователем WordPress, шаблон URL будет http://mysite.com/?p=[page_no]
page_no
Что вы можете сделать, это создать страницу, специально предназначенную для перенаправления, которая перенаправляет запрос на одну из нескольких предварительно определенных страниц:
RewriteCond %{REMOTE_ADDR} xxx\.xxx\.xxx\.
RewriteRule .* http://mysite.com/redirection_page [R,L]
В приведенном выше коде «redirection_page» будет страница, используемая для выполнения одного из последующих предопределенных перенаправлений. Поэтому при запуске программы очистки веб-страниц она будет перенаправлена на несколько страниц, и будет трудно обнаружить, что вы определили скребок.
Альтернативно, «redirection_page» может перенаправлять на третью страницу «redirection_page_1», которая затем перенаправляет обратно на «redirection_page». Это приведет к циклу перенаправления, и запрос будет возвращаться между двумя страницами на неопределенный срок.
Как веб-скребки могут обойти это?
Веб-скребок может проверять перенаправление запроса. Если есть перенаправление, он получит код состояния HTTP 301
302
Если бы не было перенаправления, он получил бы обычный 200
Мэтт Каттс на помощь
Мэтт Каттс — глава команды веб-спама в Google. Частью его работы является постоянный поиск мест для соскоба. Если ему не нравится ваш сайт, он может отключить его из результатов поиска Google. Недавние обновления Panda и Penguin в поисковом алгоритме Google затронули огромное количество сайтов, в том числе несколько скребковых сайтов.
С помощью этой формы веб-мастер может сообщать в Google о скребках с указанием источника контента. Если вы производите оригинальный контент, вы наверняка будете на радаре веб-скребков. Тем не менее, если они будут повторно публиковать ваш контент, Google позаботится о том, чтобы они были исключены из результатов поиска.