Jump to content

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


Recommended Posts

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

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

Link to post
Share on other sites
Открываем 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", так как роботы умные, любые поля не заполняют. Проверял. 

Link to post
Share on other sites
  • 4 weeks later...

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

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

Link to post
Share on other sites

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

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

Да все верно но при условии если есть одобренные комментарии с таким IP адресом, то новый комментарий автоматом становистя одобрен.
Link to post
Share on other sites
  • 1 month later...

Начало сыпаться по 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, т.к. ссылки приходят в разном регистре, и даже в смешанном. В программировании не сильна, поэтому тапками сильно не кидайтесь. :)

 

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

Link to post
Share on other sites

Начало сыпаться по 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?

Link to post
Share on other sites

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

 

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

Link to post
Share on other sites

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

 

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

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

Link to post
Share on other sites

На нашем сайте нет комментариев в блоге (доработанная под наш ИМ версия 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

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

Link to post
Share on other sites
  • 4 weeks later...

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

Также советую добавить гугл капчу форму регистрации.
Link to post
Share on other sites
  • 4 weeks later...

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

 

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

Link to post
Share on other sites

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

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

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

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

 

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

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

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

 

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

Link to post
Share on other sites
  • 2 months later...

В последнее время опять начал сыпаться СПАМ, 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 антиспам
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...