Обнинск:

  Поиск  |  Карта г.Обнинск  |  Телефонный справочник  |  Транспорт  |  Объявления

Обнинск.name

справочно-новостной сайт Обнинска


Поиск по сайтам Обнинска предоставлен Яндекс XML
  

 новости   телефоны   объявления   сайты Обнинска  + Я.Регион 

   История    |    Новости    |    Перспективы    |    Названия улиц    |    Пресса о городе    |

Поиск по Обнинску
Адреса и телефоны
Карты и схемы
Расписания
Доска объявлений
Знакомства
Форум
Конкурсы
Новости
Пресс-обзоры
Алфавитный каталог



Рекламные ccылки:
Официальная страница Главы Администрации Обнинска Николая Шубина

Новости города Обнинска

  Подписка на новости

Чтобы получать по электронной почте
свежие новости, введите Ваш адрес:


Новости Обнинска. Защита доски объявлений от веб-спама

15 января 2005

Защита доски объявлений от веб-спама

• Цели и возможности веб-спамеров
• Способы распознавания веб-спама


1. Определения.


- Спамом в статье именуется массовое распространение (как правило, при помощи электронных средств) материалов рекламного или иного характера, получатели которых не давали на то своего прямого либо косвенного согласия. Например, спамом не являются ни реклама в СМИ, ни баннеропоказы, поскольку потребители отдают себе отчёт в том, что рекламная информация прилагается "в нагрузку" к бесплатному (либо более дешёвому, чем мог бы быть) полезному контенту. C другой стороны, спамом вполне является массовое распространение рекламных материалов через факсимильную связь, по обычной почте или в виде расклейки объявлений на не предназначенных для этого поверхностях.
- Веб-спамом в статье именуется несанкционированное, автоматизированное, массовое продвижение нарушителем желательного для него контента рекламного характера на чужие веб-ресурсы. Например, генерация и раскрутка веб-страниц, предназначенных для искажения в свою пользу результатов работы чужих поисковых сайтов или рассылка своих рекламных текстов по форумам.
- В настоящей статье рассматривается только одна разновидность веб-спама (он же CommentSpam, он же LinkSpam, он же BlogSpam) - веб-спам по доскам объявлений, а также некоторые способы защиты от него.
:-) Если честно, я пишу эту статью в первую очередь для того, чтобы в процессе написания и обсуждения самому лучше понять, что такое веб-спам и как с ним бороться

2. Цели и возможности веб-спамеров.


Генеральная цель любого спамера - получение денег. Даже рассылка материалов, пропагандирующих какую-либо религиозную идею, в конечном счёте, сводится именно к этому.
Среди промежуточных целей можно выделить следующие:
- Привлечь посетителя на спамерский Интернет-ресурс.
- Заставить его сделать телефонный звонок в спамерскую фирму.
- Заставить его написать спамеру письмо.
- Просто заставить его просмотреть какой-либо текст или изображение.
- Хотя бы опубликовать на чужом ресурсе гиперссылку на свой веб-ресурс, которую прочитают если даже не люди, то хотя бы поисковые роботы.
:-) - Задолбать модератора премодерируемой доски объявлений до такой степени, чтобы тот прекратил модерить вручную, поставил какуюньдь не слишком надёжную автомодерилку и после этого забил на свою доску, сделав её, таким образом, спамабельной.

Для достижения этих целей веб-спамеры используют как скрипты на веб-серверах, так и программы, устанавливаемые на обычных компьютерах. И те, и другие программные средства могут работать как в полностью автоматическом, так и в автоматизированном режиме. К моменту написания статьи веб-спамеры уже умели:
- Обращаться к скриптам атакуемого ресурса не только методом GET, но и методами POST, HEAD, PUT и т.д.
- Полностью имитировать в запросе заголовки обычных браузеров, анализировать полученный ответ и осуществлять переходы по страницам в той же последовательности, что и обычный пользователь.
- Попеременно использовать для атаки несколько IP-адресов из различных подсетей, в том числе - использовать заражённые компьютеры и веб-сервера.
- Инвалидировать или модифицировать наиболее характерные для спама цепочки символов, такие как "htTp://", ".cOm", "Гep6aлaиф" и т.п.
- Модифицировать тексты рекламных сообщений, начиная от использования нескольких заготовленных текстов и заканчивая перестановкой слов или внедрением в слова лигшних или 3амесчаюших симвлов.
- Обходить графические тесты Тьюринга как с использованием низкооплачиваемых сотрудников, набирающих коды на клавиатуре, так и "методом порносайта".
:-) "Метод порносайта" заключается в том, что веб-спамер создаёт порнографический, пиратский или просто очень интересный для массового посетителя ресурс, на котором для доступа к контенту нужно (якобы для защиты от личеров) набрать всё ту же тьюрингову угадай-цифирь. Только вместо картинок, сгенерированных собственным рандомайзером, юзеру подсовывается угадай-цифирь, взятая с атакуемого ресурса. Введённые же посетителями (а их на подобных ресурсах бывает по нескольку тысяч в сутки) коды тут же считываются роботами и используются для атаки.

3. Способы распознавания и защиты от веб-спама.


При всём богатстве спамерских арсеналов есть вещи, которые спамеры либо не умеют делать вообще, либо делают крайне неохотно.

Веб-спамеры не могут:

- Отказаться от массовости своих рассылок. Это краеугольный и основополагающий принцип любого спама.
Поэтому интегрированные доски объявлений (далее - ИДО), заключившие партнёрские соглашения со множеством региональных либо тематических досок и собирающие объявления с них, могут использовать байесовы алгоритмы для обнаружения веб-спама даже несмотря на модификации, число которых спамерам нельзя увеличивать до бесконечности без риска получить на выходе совершенно нечитабельный текст.

- Обращаться к страницам, скрытым от обычных посетителей, а также читать исходный код скриптов, выполняемых на Вашем ресурсе.
Поэтому партнёры могут использовать мощности ИДО для фильтрации своих объявлений. Размещение объявления делится при этом на 2 этапа, выполняемых двумя разными скриптами. На первом этапе скрипт, открытый для посетителей, считывает объявление и отправляет его входному скрипту ИДО. Через какое-то время второй скрипт, закрытый от всех кроме ИДО, получает назад отфильтрованные объявления и размещает их у себя на сайте. Например, в нашем городе Обнинске такое партнёрство реализовано между ИДО www.obninsk.name/bb.htm и обычными досками объявлений http://mygorod.info/id223.htm, http://pressaobninsk.ru/board/ и http://vperyod.ru/id864.htm

- Произвольно фальсифицировать IP-адрес, с которого производится обращение. То есть, скрыть свой IP они, конечно, могут, но вот воспользоваться каким-то определённым, заданным Вами адресом или сеткой адресов - уже нет.
Поэтому региональные доски объявлений в городах с ограниченным числом Интернет-провайдеров могут использовать "белые списки", в которые заранее вносятся все IP-сетки, относящиеся к их городу, для снижения потерь от ложных срабатываний.

- Инвалидировать значимые алфавитно-цифровые последовательности, такие как имена доменов в гиперссылках (после приведения к верхнему либо нижнему регистру) и номера телефонов (после замены всех заглавных "О" на "0", "З" на "3" и удаления лишних скобок и пробелов между цифрами).
Поэтому даже мелкие доски объявлений могут использовать алгоритмы "чёрных списков", в том числе - дополняемых автоматически при обнаружении часто повторяющихся дубликатов объявлений. Кроме того, региональные доски объявлений могут отсекать веб-спам по телефонным кодам городов-"рассадников спама", не имеющих отношения к их регионам. Например, (495) - Москва, (812) - Санкт-Петербург, (375-17) или (017) - Минск, (044) - Киев и т.д.

:-) Спамеры - это не только досадная помеха, но и полезный трафик. Меняя спамерские гиперссылки ссылками на специально генерируемые страницы Вашего ресурса (с "адресами" вида http://spamer.com@obninsk.name/index.shtml), Вы можете не только поднять количество хитов в статистике, но и изрядно досадить спамерам, про которых посетители теперь будут думать, что "они уже умерли" или хуже того, что "Сайт http://spamer.com закрыт хостинг-провайдером за противоправную мошенническую деятельность и распространение вирусов в сети Интернет". Ещё веселее заменять телефоны одних спамеров телефонами других. Читая возмущённые репорты типа "Я не занимаюсь переездами, я продаю гербалайф!", можно получить немало положительных эмоций.
Ну и разумеется, не стесняйтесь проверять посетителей, пытающихся разместить у Вас объявление, на способность и желание смотреть Ваши баннеры и крутить счётчики. Дело в том, что спамеры на это идут крайне неохотно, поскольку загрузка баннеров при массовых рассылках увеличивает трафик и уменьшает скорость рассылки. Честные же податели объявлений, я думаю, не должны обижаться на эту проверку. В конце концов, хочешь бесплатно разместить объявление - будь добр и баннер загрузить!
Для проверки можно перенаправить запрос на выдачу изображения, содержащего характерные для баннеров цепочки символов (например, /adv/bannerNNNN.jpg) специальному скрипту, который перед выдачей собственно jpeg-изображения "активизирует" объявление номер NNNN.

© 2005-2006 Max Brown http://obninsk.name/mx/

PHP-коды некоторых упомянутых в статье функций:

< ?php function isObninsk(){
// Определяет, принадлежит ли IP посетителя
// к одной из сетей города Обнинска,
// задаваемых с использованием диапазонов c1-c2
// (звёздочка эквивалентна диапазону “0-255”)

$ip=getenv("REMOTE_ADDR");
$mask[]="62.148.132-156.*";
$mask[]="80.245.240-245.*";
$mask[]="83.166.100-101.*";
$mask[]="193.210.65.*";
$mask[]="194.85.84-87.*";
$mask[]="195.112.96-127.*";
for($i=0; $i<sizeof($mask); $i++){
if( ipMask($ip, $mask[$i]) ) return true;
} // for all IP-mask
return false;
} //function isObninsk()

function ipMask($ip, $mask){
$ips=explode(".", $ip);
$masks=explode(".", $mask);
for($i=0; $i<4; $i++){
if( strpos($masks[$i], "-") !== false ) {
$maskss=explode("-", $masks[$i]);
if($ips[$i]<$maskss[0]) return false;
if($ips[$i]>$maskss[1]) return false;
} // if диапазон
else{
if ( ($masks[$i]!="*") && ($masks[$i]!=$ips[$i]) ) return false;
} // Else не диапазон
} // for
return true;
} //function ipMask()
?>

function IsInSubnet($ip_str)
// может использоваться вместо функции ipMask
// в том случае, если хочется задавать диапазоны
// в виде a.b.c.d/количество_разрядов
// Код предоставлен Steel на форуме обнинского
// Интернет-провайдера Макснет Системы
// http://forum.maxnet.ru/viewtopic.php?t=903
{
$subnet[] = "195.112.96.0/19"; // MAXnet
// $subnet[] = "...";
for ($i=0; $i<count($subnet); $i++)
{
list($s_net, $s_mask) = explode('/', $subnet[$i], 2);
$s_ip = ip2long($s_net);
$ip=ip2long($ip_str);
$mask = 0xffffffff << 32-$s_mask;

if (intval($ip & $mask) != $s_ip)
{
return false;
}
}
return true;
} // function IsInSubnet


######################################
# Вставка в файл .htaccess,
# перенаправляющая HTTP-запросы
# на загрузку баннера /adv/bannerNNNN.png
# к скрипту /adv/ban.php с параметром ?n=NNNN
RewriteEngine On
Options +FollowSymLinks
RewriteBase /
RewriteRule ^adv/banner([0-9]*).png$ /ban.php?n=$1 [L]
# Конец вставки
######################################

<?php
// Файл /ban.php, на который идёт перенаправление
// HTTP-запросов вида /adv/bannerNNNN.png
$dat=date("D, H M Y");
$h="Content-Type: image/pngnLast-Modified: ".$dat." 00:00:00 GMTnETag: "89b47-8e-4376b094"n";
Header($h);
$image = ImageCreate(10, 10);
$magenta = ImagecolorAllocate($image, 204, 51, 102);
ImageFill($image, 1, 1, $magenta);
ImagePNG($image);
ImageDestroy($image);

//получаем номер объявления
$s=getenv("REQUEST_URI");
$n1=strpos($s, "adv/banner")+strlen("adv/banner");
$n2=strpos($s, ".png");
$n=substr($s, $n1, $n2-$n1);

//соединяемся с базой
$dbhostname = "localhost";
$dbusername = "ТвоеИмяВБазеMySQL";
$dbpassword = "ТвойпарольВБазеMySQL";
$database = "ИмяТвоейБазыВ_КоторойТаблицаС_Объявлениями";
mysql_connect($dbhostname, $dbusername, $dbpassword) or die(mysql_error());
mysql_select_db($database) or die(mysql_error());
//активируем объявление
$r=mysql_query("UPDATE ИмяТвоейТаблицыС_Объявлениями SET isactive=1 WHERE ИмяПоляВ_КоторомПишетсяНомерЗаписи=".$n);

/*"Что ещё за isactive" - спросишь ты.
Объясняю. Тебе придётся модифицировать базу данных своей доски объявлений, введя ещё одно поле, назовём его, скажем, isactive.
И сразу оговорюсь: если твои доски НЕ используют SQL-подобную базу данных, то проблема становится действительно проблемой и я пока не знаю, как её решить. Если же ты юзаешь mySQL, то далее модифицируй скрипт, отображающий объявления, так, чтобы он показывал только те, WHERE isactive=1
*/
[php-коды - в процессе добавления]


Просмотров: 602
Обсудите новость на форуме Obninsk.name:

Ваше имя (логин) на форуме
Ваш пароль, если Вы уже зарегистрировались на форумах Obninsk.name, либо e-mail, если ещё нет.
Ваш e-mail нигде опубликован не будет, но он необходим для отправки Вам пароля к форуму.
Текст сообщения
Пошлите
эту новость
другу
E-mail: Ваш комментарий:

Показать все новости


 Все новости 
Все пресс-обзоры 

Экспресс-опрос

504 Gateway Time-out

504 Gateway Time-out


nginx/0.6.31
Официальные проекты Obninsk.name


 
Другие новости

Лучшие фото


Оцифруй Обнинск с нaмe!
Подпроект завершен, страницы оставлены в архивных целях
По вопросам предоставления скриптов зв. 89605213199

Рейтинг@Mail.ru
Партнёрам | Реклама | О проекте | Контакты | Форум | Главная
Copyright © 2005-2009 Обнинск.Name. При использовании материалов сайта гиперссылка обязательна.