Archive

Posts Tagged ‘спам’

Спам. Моя борьба. Часть 2.

August 20th, 2013 No comments

Вторая часть. Найдем и уничтожим.

Для поиска ресурсов с открытым постингом есть несколько вариантов действий. Самый простой – это примерно вот такой:

Скачиваем рекурсивно сайт в папочку. Для этого нам подойдет даже вполне себе стоковый Wget. Кроме того, составим список адресов страниц, которые не были скачаны путем парсинга логов веб-сервера. Разницу – догрузим. Как показывает практика, спамеры достаточно четко находят страницы на которых можно разместить спам посредством перебора стандартных адресов. Т.е. /forum/, /phpBB/, /phpBB3/, /wp/ итд.

После этого, мастырим простейший скрипт, который подсчитывает количество внешних ссылок на каждой конкретной странице, и суммирует их в количество уникальных внешних ссылок со всего сайта. Как правило, сайт куда открыт свободный постинг имеет от 150 уникальных внешних ссылок и выше. Так что очень быстро скрипт вам покажет какие пути сайта подвержены спаму.

Итак, вот на руках у нас уже есть список ресурсов. Дальше – просто. Если на сайте спам локализован в какой-то папке, например /forum/, то проверяем путь на фс, дабы убедиться что речь именно о реальной папке. И кладем туда простейший .htaccess

 

<Limit POST>
Order Allow,Deny
Deny from all
</Limit>

Не очень эстетично, но проблему поступления нового спама это перекроет.  Дальше, хорошо бы либо почистить это дело, либо убрать забытый скрипт.
Хвала богам, но популярных движков форумов/блогов/CMS – на самом деле весьма не много, и подвержены спаму одни и теже движки.

Ну, например:

DLE – очень подвержен спаму в комментариях, и в профилях пользователей.
Лечение: 3 SQL запроса:

  1. очистить всех юзеров имеющих 0 постов и урлы в описании.
  2. очистить таблицу комментариев, от комментариев со ссылками, либо от юзеров из п.1
  3. обновить счетчик комментариев к статьям.

И примерно схожие алгоритмы применимы для всех популярных CMS.

 

Спам. Моя борьба. Часть 1.

September 5th, 2012 No comments

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

Нам, увы, приходится ежедневно сталкиваться с проблемами вызванными спамом: переполненные форумы –  медленно загружаются. Тысячи комментариев к статье? Страница статьи медленно загружается, ведь её размер уже не 20кб, а 5мб!

Эта борьба, в нашем случае, состоит из нескольких частей, потому делиться опытом будем в несколько заходов.

Первая часть. Сделаем спам бесполезным.

Изничтожить спам как явление  – невозможно. Он будет в существовать до тех пор, пока будет оставаться выгодным. Но, вполне можно сделать так, чтобы спам именно на вашем сервере был бесполезен.

Мы решили, что все исходящие ссылки указывающие на внешние адреса “станут” локальными, и технически – не индексируемыми поисковиками.

Для этого нам понадобился небольшой модуль к Apache. Алгоритм крайне прост:

 

1. Получаем очередной chunk.
2. Регекспами ищем все ссылки начинающиеся с http://
3. Заменяем буквы http:// например на /wrn.php?

Таким образом, на выходе мы получаем страницу со ссылками такого вида: <a href=’/wrn.php?www.some.external.site.com’></a>

Теперь, нам надо сделать так, чтобы на каждом сайте “появился файл” wrn.php, который обрабатывал бы исходящие ссылки. В этом нам помог Nginx, и его умение работать в режиме прокси.

 

Создаем инстанс апстрима для прокси:

upstream err {
     server 192.168.111.202:80 weight=5 max_fails=2 fail_timeout=10s;
    }

В теле конфига сервера указываем, что все файлы начинающиеся с /wrn.php обрабатываем указанным ранее апстримом.

location /wrn.php  {
      proxy_pass http://err;
      proxy_redirect     off;
      proxy_set_header   Host             $host;
    }

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

 

В следующих частях будем рассказывать о капчах, базах данных, и поиске спама 🙂