Перейти к содержанию
Официальный форум поддержки Simpla

Комментарии Со Спамом Каждый День


Рекомендуемые сообщения

Есть проще вариант. Я себе его и поставил - работает 100%

В поиске поищите в готовых решениях - Gloobus сделал - скрытое поле, которое заполняют только боты - в конец проверка, если поле заполнено - коммент отклоняется. Итог 99% спама фильтруется автоматом.

Ссылка на сообщение
Поделиться на другие сайты
Открываем docs/design/theme/html/product.tpl

После -> 

 

                <div class="form_group">

                    <textarea class="form_textarea" rows="4" name="text" data-format=".+" data-notice="{$lang->form_enter_comment}" data-language="{$translate_id['form_enter_comment']}" placeholder="{$lang->form_enter_comment}*">{$comment_text}</textarea>

                </div>

 

Добавляем ->

 

<textarea class="form_textarea_palevo" rows="4" name="email" data-format="" data-notice="" data-language="" placeholder="*"></textarea>

 

Далее открываем /docs/view/ProductView.php

 

После ->

 

        if ($this->request->method('post') && $this->request->post('comment'))

        

Вставляем ->

 

        if (empty($this->request->post("email")))

 

В стилях добавляем 

textarea.form_textarea_palevo {

    display: none;

}

 

Готово!

Поясняю: Так, как у моего коментария нет поля для ввода email я его добавил и скрыл для пользователей. Поставил проверку - если поле пустое коментарий отправляется. Если нет, то ничего. Если кто-то в коментариях использует email, поставьте скрытое поле "phone", так как роботы умные, любые поля не заполняют. Проверял. 

Ссылка на сообщение
Поделиться на другие сайты
  • 4 недели спустя...

почему нельзя просто проверить сообщение на содержание такого рода как "http, www, .ru, .com..." ?

Да и с одобрением админа вроде добавляются комменты, нет разве?

Ссылка на сообщение
Поделиться на другие сайты

почему нельзя просто проверить сообщение на содержание такого рода как "http, www, .ru, .com..." ?

Да и с одобрением админа вроде добавляются комменты, нет разве?

Да все верно но при условии если есть одобренные комментарии с таким IP адресом, то новый комментарий автоматом становистя одобрен.
Ссылка на сообщение
Поделиться на другие сайты
  • 1 месяц спустя...

Начало сыпаться по 20-30 комментариев-отзывов в день по основному сайту, вариант со скрытым полем не прокатил, но оставила. Атака идет в основном на несколько страниц товаров, видимо, где-то в базе спамеров есть ссылки.

 

Посмотрела логи сайта, фиксируются заходы, IP и прочие данные меняются, не заблокировать на уровне .htaccess, как плохих ботов. В Вебвизоре Яндекс не фиксируется, т.е. это точно боты.

 

Поскольку цель таких ботов добавить ссылки, то пошла по указанному пути:
 

почему нельзя просто проверить сообщение на содержание такого рода как "http, www, .ru, .com..." ?

Да и с одобрением админа вроде добавляются комменты, нет разве?

 

В /view/ProductView.php изменила одну строчку кода:

//антиспам
elseif ((empty($comment->text)) OR (!stristr($comment->text, 'http') === FALSE))
	{
		$this->design->assign('error', 'empty_comment');
	}

Использовала именно stristr, т.к. ссылки приходят в разном регистре, и даже в смешанном. В программировании не сильна, поэтому тапками сильно не кидайтесь. :)

 

Пока больше ничего не приходит. Если продолжится, напишу и буду ставить гуглокапчу.

Ссылка на сообщение
Поделиться на другие сайты

Начало сыпаться по 20-30 комментариев-отзывов в день по основному сайту, вариант со скрытым полем не прокатил, но оставила. Атака идет в основном на несколько страниц товаров, видимо, где-то в базе спамеров есть ссылки.

 

Посмотрела логи сайта, фиксируются заходы, IP и прочие данные меняются, не заблокировать на уровне .htaccess, как плохих ботов. В Вебвизоре Яндекс не фиксируется, т.е. это точно боты.

 

Поскольку цель таких ботов добавить ссылки, то пошла по указанному пути:

 

 

В /view/ProductView.php изменила одну строчку кода:

//антиспам
elseif ((empty($comment->text)) OR (!stristr($comment->text, 'http') === FALSE))
	{
		$this->design->assign('error', 'empty_comment');
	}

Использовала именно stristr, т.к. ссылки приходят в разном регистре, и даже в смешанном. В программировании не сильна, поэтому тапками сильно не кидайтесь. :)

 

Пока больше ничего не приходит. Если продолжится, напишу и буду ставить гуглокапчу.

Весьма элегантное решение. Но есть нюанс. На одном сайте работает, на другом нет. Причем именно с HTTP и пролезает. Может прописать еще несколько условий, помимо http?

Ссылка на сообщение
Поделиться на другие сайты

У меня только по "http" условие, пока помогает. Хотя для ботов других вариантов и не вижу, у них цель загадить все ссылками. Изредка присылают интим-спам с именем и фамилией в социальной сети, но это единичные сообщения.

 

Посмотрите еще раз на условие в ProductView.php, может быть отличается и правило не срабатывает. У меня 2 файла ProductView.php, один из них в папке ajax, но изменено только в папке view, работает.

Ссылка на сообщение
Поделиться на другие сайты

У меня только по "http" условие, пока помогает. Хотя для ботов других вариантов и не вижу, у них цель загадить все ссылками. Изредка присылают интим-спам с именем и фамилией в социальной сети, но это единичные сообщения.

 

Посмотрите еще раз на условие в ProductView.php, может быть отличается и правило не срабатывает. У меня 2 файла ProductView.php, один из них в папке ajax, но изменено только в папке view, работает.

Вдогонку, просто не сразу обратил внимание: Да, Ваш вариант работает отлично, но только для коментов в продуктах, а вот в блоге все пролезает. Соответственно, видимо, надо внести изменения еще и в файл отвечающий за проверку формы в блоге. Вопрос (не хочу забирать ваши лавры): так что же это за файл? ;)

Ссылка на сообщение
Поделиться на другие сайты

На нашем сайте нет комментариев в блоге (доработанная под наш ИМ версия 2.2.4), не подскажу.

ОК. Тогда я )

Итак. В файлах ProductView.php (комментарии к продуктам) и в BlogView.php (комментарии в блоге) добавляем к строке elseif ((empty($comment->text)) следующую конструкцию: OR (!stristr($comment->text, 'http') === FALSE))

 

Получается: elseif ((empty($comment->text)) OR (!stristr($comment->text, 'http') === FALSE))

 

Собственно как и описано у Julia-sk

Это полностью решило проблемы с спам-ботами. Даже скучно стало ;)

Ссылка на сообщение
Поделиться на другие сайты
  • 4 недели спустя...

Спасибо. Наконец то прекратился спам.

Ага... Только теперь еще и "зарегистрированных пользователей" сотни... (

Ссылка на сообщение
Поделиться на другие сайты

Ага... Только теперь еще и "зарегистрированных пользователей" сотни... (

Также советую добавить гугл капчу форму регистрации.
Ссылка на сообщение
Поделиться на другие сайты
  • 4 недели спустя...

Нет, извиняюсь. Работает. Просто внимательнее надо. Буква в букву, знак в знак!

 

elseif ((empty($comment->text)) OR (!stristr($comment->text, 'http') === FALSE))

Ссылка на сообщение
Поделиться на другие сайты

Вчера пришло на почту через форму обратной связи сайта:

Рассылка ваших коммерческих предложений по формам обратной связи сайтов
организаций России.
Рассылки по формам ваших коммерческих предложений в
разделы контакты сайтов организаций по любым странам и доменным зонам мира.

Коммерческое предложение приходит на контактный емаил учреждения сто % в
папку inbox!

Спам-фильтр не обошло, но все же, пока одно пришло.

 

Пугают масштабы:

Хит продаж! Организации и Предприятия РФ - 3012045 контакт-форм

Придется еще и форме обратной связи ссылки запрещать с примечанием для "живых" посетителей, что ссылки запрещены. :(

 

Спам через комментарии сначала приходил по 1-2 сообщению в день, а через месяц по нарастающей до 20-30 в день. :(

Ссылка на сообщение
Поделиться на другие сайты
  • 2 месяца спустя...

В последнее время опять начал сыпаться СПАМ, html в тексте не указывают. Причем, сыплется в основном в комментарий к одному товару, видимо, ссылка в базе у рассыльщиков.

Изменила правило, пока работает. Теперь так:

			//антиспам
			elseif ((empty($comment->text)) 
			OR (!stristr($comment->text, 'http') === FALSE) 
			OR (!stristr($comment->text, '.ly') === FALSE) 
			OR (!stristr($comment->text, 'SEO') === FALSE) 
			OR (!stristr($comment->text, '$$') === FALSE) 
			OR (!stristr($comment->text, 'url') === FALSE) 
			OR (!stristr($comment->text, '<a') === FALSE) 
			OR (!stristr($comment->text, '.com') === FALSE)
			OR (!stristr($comment->text, '.ru') === FALSE)
			OR (!stristr($comment->text, 'forum') === FALSE)
			OR (!stristr($comment->text, 'copy') === FALSE)
			)
			{
				$this->design->assign('error', 'empty_comment');
			}
			// end антиспам
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...