Pull to refresh

Автоматический отстрел граберов или как избежать автоматического сграбления сайта

Reading time 2 min
Views 1K
Я администратор доски объявлений и видимо усилия по поддержанию уникального контента (TBD – тема отдельного типика) не проходят зря т.к. я заметил нехорошую тенденцию к сграблению объявлений через RSS ленту, разбор html-страниц сайта т.е. контент серым личностям нравиться.

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

Первый и действенный метод борьбы – посмотреть в ping IP сайта, ворующего контент и заблокировать его, что помогало только первое время. Но иногда мне просто нехватало времени на выявление «воришек», да и некоторые сайты стали добавлять использование прокси-серверов.

Как настоящий программист я принялся искать автоматизированное решение и быстро нашел его. Достаточно вспомнить, что одним из важнейших различий вэб-сервера и компьютера пользователя в сети Интернет является наличие у сервера открытых портов, обслуживаемых HTTP/SMTP/POP-серверами. Т.е. если недопускать копирование контента с IP имеющих открытые наружу порты, то это будет хорошее препятствие.

Чтобы начать выявлять серых личностей и их сайты оказалось достаточно такого PHP-кода:

//$ip – это может быть $_SERVER["REMOTE_ADDR"] и $_SERVER["HTTP_X_FORWARDED_FOR"]
$fp = @fsockopen($ip, 80, $errno, $errstr, 1);
if( $fp !== FALSE )
{
//тут логируем, что данный IP имеет открытый HTTP-порт т.е. вероятно это сервер
}


Следует обратить внимание, что поле HTTP_X_FORWARDED_FOR устанавлиается в случае, если пользователь ходит через обычный прокси. Но это поле может быть и подделкой, поэтому нужно проверять IP как указанное в HTTP_X_FORWARDED_FOR, так и в REMOTE_ADDR.

Поскольку на доске объявлений происходит установка сессии для каждого посетителя, то проверка выполнялась только на 2-м хите для каждого уникального IP.

Пробный запуск скрипта на 1 сутки показал высокую эффективность – 4 сайта-грабителя были выявлены и обезврежены. Отловлено IP с открытым 80-м портов – более 2000! Поэтому для анализа IP использовался WHOIS сервис любезно предоставленный nic.ru и еще один скрипт. Ну что-же, у них защиты от автоматических сканеров нет и хорошо ;)

Теперь все, кто находятся в моем бан-листе получают текст объявления вроде «Данное объявление было незаконно скопировано с сайта xxxx, что является нарушением авторских и смежных прав. Пожалуйста, не пользуйтесь сайтами ворующими контент т.к. такие сайты могут использоваться для распространения скрытых вредоносных программ, а также могут собирать конфиденциальную информацию о вас.» ;)

Однако не стоит просто блокировать все IP имеюшие открытые наружу порты. Оказывается существуют домашние сети, где по 80-му порту открывается статистика прокси-сервиса (да, каждому гостю!), где детально перечислен список любимых сайтов этой аудитории с количеством хитов/Мб и кто сколько тянул…

Дополнительная информация:
  1. Для анализа хождений через прокси-сервера следует анализировать порты – 8080, 1080, 3126.
  2. Поиск дубликатов (имею премиум, личное мнение – сервис очень часто не прав) — http://www.copyscape.com/


Прошу Ваши идеи и комментарии в тред!
Tags:
Hubs:
+26
Comments 29
Comments Comments 29

Articles