АнтиСпам для Блогов (ver. 1.10.* & 1.9)

2413

Привет всем!

Недавно поймал на сайте приличное кол-во спама в блоги, и как на зло не следил за сайтом пару дней ..
В итоге получил ~400 постов содержащих множество ссылок на левые ресурсы..
Оперативно забанил ботов и провел чистку.

Сколько этого спама успело улететь в поиск не знаю, но думаю много,
и это плохо конечно. Особенно для молодого сайта..



Заметил как оказалось вовремя, так как прочитал на форуме, что многие ловят спам тысячами постов!

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

Решено было добавить дополнительную защиту от спамеров.

работа анти-спама очень проста -
при создании нового поста, идет проверка предыдущего,
и если есть подозрение на спам,
появляется вежливая просьба ввести код (капчу)
для проверки на человечность.
Если бот начинает перебирать капчу, админ тут же получит уведомление в ЛС для
оперативного принятия мер.
Если это человек, он без проблем пройдет дальше и напишет пост.

Все изменения попытался свести к минимуму.
Для 1.9 не проверял, но должно работать.

Делается все в файле : www\components\blogs\frontend.php

после строк :

Код PHP:
  1. //для нового поста
  2. if ($do=='newpost'){
  3.  
  4. if (IS_BILLING){ cmsBilling::checkBalance('blogs', 'add_post'); }
  5.  
  6. $inPage->addPathway($_LANG['NEW_POST']);
  7. $inPage->setTitle($_LANG['NEW_POST']);


необходимо добавить эти:

Скрытый текст виден только зарегистрированным пользователям



Для тех у кого установлена 1.10.1 и файл frontend.php не менялся,
можно скачать уже исправленный и закинуть в папку
www\components\blogs\

Скрытый текст виден только зарегистрированным пользователям



Для тестирования необходимо попытаться добавить подряд несколько постов в блог.



Для версии движка 1.9 :

Скрытый текст виден только зарегистрированным пользователям
Повторная Активация (1.10.* микрохак) | Плагин 'Вставить фото из своих альбомов' (ver.1.10* & ↑)
Комментарии (44)
[email protected] 23 февраля 2013 в 17:39 +4
Нужная вещь, счас потесчу
От меня вам +
Soul 23 февраля 2013 в 17:59 +5
Блог: мелочи
+ :)
P.S. Этот вопрос далеко не мелочи... :(
Майкл 23 февраля 2013 в 18:03 +3
+ большущий.
toropa 23 февраля 2013 в 18:23 +1
+
под 1.9 есть подобное?
Dost 23 февраля 2013 в 18:24 +1
Отлично! Нужная многим вещь! Спамерам — нет. Вам огромнейший плюс!
Azura 23 февраля 2013 в 18:40 +1
Супер!!! Спасибищи!!! =)))
BlondinkO 23 февраля 2013 в 18:42 +1
Браво! Очень актуально! Спасибо!
Endroid 23 февраля 2013 в 18:44 +1
Спасибо за работу! Нужное решение - в ядро однозначно!
Марат 23 февраля 2013 в 18:54 +3
+
молодец!
picaboo 23 февраля 2013 в 19:19 +3
Скрытый текст виден только зарегистрированным пользователям
KS 23 февраля 2013 в 19:39 +1
Можно и так, но тогда будут проблемы у тех кто любит писать в ворде, и затем копировать-вставить..
lezginka.ru 23 февраля 2013 в 19:59 +1
+
вовремя :)
EVV 23 февраля 2013 в 20:01 +1
Всё отлично работает! Спасибо! +
Владимир Савенко 23 февраля 2013 в 20:27 0
В закладки, после праздников попробую, но заранее спасибо, за данную разработку. Думаю, что с проблемой спама (ох уж эти горе сеошники) сталкивается любой сайт, который вышел на высокие позиции...
st.Puh 23 февраля 2013 в 21:40 +1
Супер,очень нужная вещь, поставил проверил все работает.Добавил пост в блог, сразу за ним хотел добавить второй, выводит страничку с капчей.Попробовал добавить второй пост через 15 мин. капча не появилась,работает прекрасно.
reload 23 февраля 2013 в 22:28 +2
Интересное решение)
+++
Единственное увидел только одно но! из за которого было принято решение написать проверку)
KS:
но и тут бывает такое, что боты друг другу карму повышают и затем начинается постинг.
Ни в коем случае не упрек, реально интересно:
Не проще ли именно для этого "но!" сделать простую проверку - кто имеет право оценивать (поднимать карму)
Если карма ниже 10 - то гуляй лесом - зарабатывай авторитет)) боты не смогут друг-другу накрутить...
Только через реальных пользователей, если это делается преднамеренно - но такое вычислить очень просто...

У себя еще не разу не замечал как боты поднимают друг другу карму)

Но в любом случае +) дело полезное!)
Def 23 февраля 2013 в 22:59 +2
а если проект новый и у всех пока нулевая карма, что делать?)
reload 23 февраля 2013 в 23:10 0
Жесть, тогда все пропало))
хотя на то мы и админы, что бы принимать решения)
До появления 5-10 с положительной кармой, можно и ручками поадминить, можно и модеров завести, да много чего можно - пока на сайте нет движухи (пока молодой) следить за ним не так напряжно когда появятся даже сотни юзеров!)
А с другой стороны есть ведь решение ТС - если оно подходит, то в чем проблема?)
Просто для меня, если вопрос был в том, что боты могут друг другу карму поднимать - то именно это и нужно решать!) хотя каждый оценивает ситуацию по своему)

Не вижу смысла усложнять жизнь людям с высокой кармой из-за ботов - лучше ограничить "новеньких" - на то они и новенькие - пусть в начале заслужат доверие! но это всего мысли вслух) для меня правильней так - у каждого свое мнение и свои приоритеты)
reload 23 февраля 2013 в 23:17 0
Получается что блог можно создать с кармой выше единицы, но поднимать или опускать карму могут только те у кого карма выше десяти!
Тут и логика небольшая есть - всякие "уникумы" которые заминусованы ниже плинтуса, не смогут портить карму и репутацию "нормальным" юзерам!)
Получаем что оценивать могут якобы только "адекватные" пользователи, мнение которых уже имеет вес!)

Конечно можно найти много примеров как "неадекватные" набирают положительную карму, но тут уже другая сказка - и тоже лежит на плечах админа или модеров!)
KS 24 февраля 2013 в 05:23 0
Мне кажется если ставить ограничения кармой, нужно, что бы сайт уже был неплохо раскручен.
Я всегда был за удобство и простоту, поэтому стараюсь меньше делать ограничений для пользователей .
И в этом анти-спаме жизнь пользователей ни в коем случае не усложняется ! В 90% анти-спам увидят только боты.
reload 24 февраля 2013 в 06:23 0
так я только ЗА!)
решение однозначно хорошее - это даже не вопрос)
Скрытый текст виден только зарегистрированным пользователям
KS 24 февраля 2013 в 07:19 0
Согласен, от спама в конечном итоге спасут только руки , но даже это решение по вставляет палки в колеса

Скрытый текст виден только зарегистрированным пользователям
letsgo 24 февраля 2013 в 07:12 -1
1000 распознаваний капчи стоит на антигейте 1 доллар. Честно говоря по решению с кармой не видел, чтобы боты друг другу повышали карму. Кто факт приведет? Решение хорошее и заставит спамеров подключить антигейт, но таки не конечное.
KS 24 февраля 2013 в 07:23 0
на форуме гдето в темах про спам читал о карме и о том, что был случай повышения кармы перед постингом. Не факт конечно что это боты, скорее всего вручную подняли, а затем включили бота.
Александр 24 февраля 2013 в 00:28 +1
Огромный плюс за проделанную работу, недавно сам на этом попался, похоже спамеры нащупали слабое место. Надеюсь, что теперь им путь будет перекрыт :)
tokarev 24 февраля 2013 в 12:01 +1
любой сайт, который вышел на высокие позиции
у меня один сайт, только что созданный, с дефолтным наполнением от инстанта (Останцевый лакколит, и т.п.) начал ловить спам, а другой (в региональном ТОП-3 по 5 запросам) - тьфу, тьфу,тьфу, не ловит пока)))

Аффтару плюс однозначно, если под 1.9 кто уже ставил, поделитесь фпичатлениями, пжл...
Керя 25 февраля 2013 в 07:43 +1
молодец +
Эдька 25 февраля 2013 в 09:48 +1
у меня стоит подтверждение по мыло. но боты почему-то не подтверждают акунты.
Telema93 26 февраля 2013 в 04:08 +1
У меня было бодобное, только 6 000 постов, чистил базу через phpmyadmin так как двиг не справлялся. однозначный +
savin2002 7 марта 2013 в 11:59 0
У меня в версии 1.9 такая проблема. После того как ввожу код в капчу и отправляю, в правом верхнем углу браузера появляется надпись «Новая запись» и всё.
KS 7 марта 2013 в 12:38 0
как ставили ? код прописали или файлом?
если прописали вручную, возможно ошиблись строкой. Там есть похожие..
savin2002 8 марта 2013 в 19:04 0
Код прописывал вручную и сверял с файлом. Пробовал несколько раз. Ошибки со строками нет.
KS 8 марта 2013 в 19:24 0
Так не подскажу. Пробовал по разному, ошибки такой нет. Попробуйте в другом браузере на всякий случай..
__ 24 марта 2013 в 20:55 +1
Хорошая вещь, на заметку
den4ik 28 марта 2013 в 13:52 0
Ребята в чем может быть проблема ?

Код PHP:
  1.  
  2. Новая запись
  3.  
  4.  
  5. Fatal error: Using $this when not in object context in /home/***/***/www/core/cms.php on line 1872
  6.  
KS 29 марта 2013 в 08:02 0
В файле cms.php есть функция public function request
у меня она обновлена до статической - public static function request
а там нельзя использовать $this , вместо этого должно быть self::

когда и почему я ее обновлял уже не вспомню .. Но на всякий случай выкладываю тут :

Код PHP:
  1.  
  2. public static function request($var, $type='str', $default=false){
  3. if (isset($_REQUEST[$var])){
  4. switch($type){
  5. case 'int': return (int)$_REQUEST[$var]; break;
  6. case 'str': if ($_REQUEST[$var]) { return self::strClear($_REQUEST[$var]); } else { return $default; } break;
  7. case 'email': if(preg_match("/^([a-zA-Z0-9\._-]+)@([a-zA-Z0-9\._-]+)\.([a-zA-Z]{2,4})$/i", $_REQUEST[$var])){ return $_REQUEST[$var]; } else { return $default; } break;
  8. case 'html': if ($_REQUEST[$var]) { return self::strClear($_REQUEST[$var], false); } else { return $default; } break;
  9. case 'array': if (is_array($_REQUEST[$var])) { return $_REQUEST[$var]; } else { return $default; } break;
  10. case 'array_int': if (is_array($_REQUEST[$var])) { foreach($_REQUEST[$var] as $k=>$i){ $arr[$k] = (int)$i; } return $arr; } else { return $default; } break;
  11. case 'array_str': if (is_array($_REQUEST[$var])) { foreach($_REQUEST[$var] as $k=>$s){ $arr[$k] = self::strClear($s); } return $arr; } else { return $default; } break;}
  12. } else {
  13. return $default;}}
  14.  
den4ik 28 марта 2013 в 13:53 0
Версия 1.9, файл заменял.
RubA 24 сентября 2013 в 09:20 +1
ещё бы прикрутить
Максима Симпл Капчу - воще было бы супер (я попробывал сам - не выводиться)
спасибо за работу
RubA 26 сентября 2013 в 15:38 0
Ещё бы после определения
что это спамер
как его все блоги снести - почистить сайт?

может кто подскажет?
BELIEVER 17 ноября 2013 в 02:03 0
а 1.10.1 будет работать ????
BELIEVER 17 ноября 2013 в 02:18 0
Извеняюсь работает))
WizarD 12 февраля 2014 в 16:45 0
Не смог заставить работать на 1.9. И код добавлял и пробовал файл заменить - добавляется два новых поста подряд и все.
Александр 27 октября 2014 в 09:50 0
Поставил на 1.10.4, все работает. Спасибо!
savin2002 18 января 2015 в 14:47 0
На 1.10.5 когда нажимаю "Новая запись" выскакивает белая страница.