Автор Тема: Спамят через обратную связь  (Прочитано 7511 раз)

10 Январь 2018, 14:04:56
Ответ #15
  • Новичок
  • *
  • Сообщений: 39
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Роботы обходят капчу, 100% блокировки спама такая защита не даст.
Но у меня стоит капча от гугла, она ведь усложняется с каждым разом.. мне кажется они все вручную делают, тем более если б это был робот он мог бы засандалить 1000писем, а делается от силы 30-40

Пока сменила еще название ссылки ) сегодня пришло опять 30писем, но хотя бы людям от нас спам не идет
13 Февраль 2018, 21:22:46
Ответ #16
  • Новичок
  • *
  • Сообщений: 1
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Ту же ерунду словил сегодня. Скажите, если форма обратной связи не нужна, ее можно как то отключить ? Или просто удалить в разделе SEO URL и все прекратиться ? Но вдруг понадобится потом...
13 Февраль 2018, 23:41:31
Ответ #17
  • Старожил
  • ****
  • Сообщений: 310
  • Репутация: +7/-0
  • Сообщество PrestaShop
    • Просмотр профиля
    • Адвокаты, юристы. Киев, Чернигов
Сегодня вот тоже появилось такое, сначала не понял вообще что это - сайту месяц, товар только начал наполнять. И вот что я заметил - на сайте установлено два языка - русский, английский. Английский не используется, но пока стоит. Так вот спам идет только из английской версии, из русской нет совсем.
Установка, настройка, сайтов, интернет-магазинов, наполнение интернет - магазинов на движке WP, PrestaShop.
Юридические услуги http://kanon-lawyers.com.ua на WP Интернет - магазин https://balagan.pp.ua на PrestaShop
14 Февраль 2018, 11:08:57
Ответ #18
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Пошли жалобы от клиентов на спам с формы контактов. Видимо в боты включили сайты под prestashop.
17 Февраль 2018, 15:42:39
Ответ #19
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Каптча действительно не помогает. Похоже, какие-то п*ры набирают текст вручную.
Пока изменил файл /controllers/front/ContactController.php

//'{message}' => Tools::nl2br(stripslashes($message)),
'{message}' => Tools::nl2br(strip_tags($message)),
и

                   /*if (empty($contact->email)) {
                        Mail::Send($this->context->language->id, 'contact_form',
((isset($ct) && Validate::isLoadedObject($ct)) ? sprintf(Mail::l('Your message has been correctly sent #ct%1$s #tc%2$s'),
$ct->id, $ct->token) : Mail::l('Your message has been correctly sent')), $var_list, $from, null, null, null, $file_attachment);
                    } else {*/

/* if (!Mail::Send($this->context->language->id, 'contact', Mail::l('Message from contact form').' [no_sync]',
$var_list, $contact->email, $contact->name, null, null,
$file_attachment, null,    _PS_MAIL_DIR_, false, null, null, $from) ||
!Mail::Send($this->context->language->id, 'contact_form',
((isset($ct) && Validate::isLoadedObject($ct)) ? sprintf(Mail::l('Your message has been correctly sent #ct%1$s #tc%2$s'),
$ct->id, $ct->token) : Mail::l('Your message has been correctly sent')), $var_list, $from, null, null, null,
$file_attachment, null, _PS_MAIL_DIR_, false, null, null, $contact->email)) {*/
                        if (!Mail::Send($this->context->language->id, 'contact', Mail::l('Message from contact form').' [no_sync]',
$var_list, $contact->email, $contact->name, null, null,
$file_attachment, null,    _PS_MAIL_DIR_, false, null, null, $from) )
{
$this->errors[] = Tools::displayError('An error occurred while sending the message.');
}
                   // }
Это отключает обратное письмо и удаляет ссылки из текста.
Кстати, найти сайты-паразиты можно через сервис https://ru.myip.ms/info/whois/


17 Февраль 2018, 21:16:03
Ответ #20
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Ситуация улучшилась, клиенты уже не страдают, но меня эти письма задолбали.
Пришлось изменить и файл classes/Validate.php
В
public static function isCleanHtml($html, $allow_iframe = false)добавил правило

        if (preg_match('/href/i', $html)) {
            return false;
        }

Теперь письма со ссылками не принимаются.
18 Февраль 2018, 21:57:47
Ответ #21
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Прошли сутки, спама нет.
Проблема решена.
20 Февраль 2018, 20:47:31
Ответ #22
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Пришлось добавить в classes/Validate.php в function isCleanHtml($html, $allow_iframe = false) еще 3 проверки

if ((strpos($html, 'http')) !== false) {
            return false;
        }
if ((strpos($html, '<')) !== false) {
            return false;
        }
if ((strpos($html, '@')) !== false) {
            return false;
        }

Чтобы блокировать тексты с адресами сайтов и email.
И вообще все теги.
21 Февраль 2018, 14:13:52
Ответ #23
  • Новичок
  • *
  • Сообщений: 17
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Пришлось добавить в classes/Validate.php в function isCleanHtml($html, $allow_iframe = false) еще 3 проверки

if ((strpos($html, 'http')) !== false) {
            return false;
        }
if ((strpos($html, '<')) !== false) {
            return false;
        }
if ((strpos($html, '@')) !== false) {
            return false;
        }

Чтобы блокировать тексты с адресами сайтов и email.
И вообще все теги.

Добрый день!

Такая же ерунда появилась недели две назад.
Подскажите а можно как то проще, не залезая в код решить этот вопрос?
Как можно отключить модуль обратной связи или убрать ссылку на него с сайта?
21 Февраль 2018, 14:32:10
Ответ #24
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
Подскажите а можно как то проще, не залезая в код решить этот вопрос?
Как можно отключить модуль обратной связи или убрать ссылку на него с сайта?

Prestashop без обратной связи? И что это будет?
Но да, я видел инструкцию в интернете.
21 Февраль 2018, 15:26:04
Ответ #25
  • Старожил
  • ****
  • Сообщений: 310
  • Репутация: +7/-0
  • Сообщество PrestaShop
    • Просмотр профиля
    • Адвокаты, юристы. Киев, Чернигов
Цитировать
Подскажите а можно как то проще, не залезая в код решить этот вопрос?
Как можно отключить модуль обратной связи или убрать ссылку на него с сайта?

Prestashop без обратной связи? И что это будет?
Но да, я видел инструкцию в интернете.

А чем в данном случае отличается Prestashop от магазинов на других движках ? За более чем пять лет активных покупок в интернете ни разу обратной связью не пользовался. Для выяснения вопросов есть телефон и эл. почта. Думаю, что я мягко говоря не одинок в этом. А вот те коды, внедрение которых Вы предлагаете действительно сложно внедрить не программисту. Так, что вопрос ТС вполне логичен.
Установка, настройка, сайтов, интернет-магазинов, наполнение интернет - магазинов на движке WP, PrestaShop.
Юридические услуги http://kanon-lawyers.com.ua на WP Интернет - магазин https://balagan.pp.ua на PrestaShop
21 Февраль 2018, 16:06:34
Ответ #26
  • Ветеран
  • *****
  • Сообщений: 520
  • Репутация: +4/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Каптча действительно не помогает. Похоже, какие-то п*ры набирают текст вручную.
Пока изменил файл /controllers/front/ContactController.php

//'{message}' => Tools::nl2br(stripslashes($message)),
'{message}' => Tools::nl2br(strip_tags($message)),
и

                   /*if (empty($contact->email)) {
                        Mail::Send($this->context->language->id, 'contact_form',
((isset($ct) && Validate::isLoadedObject($ct)) ? sprintf(Mail::l('Your message has been correctly sent #ct%1$s #tc%2$s'),
$ct->id, $ct->token) : Mail::l('Your message has been correctly sent')), $var_list, $from, null, null, null, $file_attachment);
                    } else {*/

/* if (!Mail::Send($this->context->language->id, 'contact', Mail::l('Message from contact form').' [no_sync]',
$var_list, $contact->email, $contact->name, null, null,
$file_attachment, null,    _PS_MAIL_DIR_, false, null, null, $from) ||
!Mail::Send($this->context->language->id, 'contact_form',
((isset($ct) && Validate::isLoadedObject($ct)) ? sprintf(Mail::l('Your message has been correctly sent #ct%1$s #tc%2$s'),
$ct->id, $ct->token) : Mail::l('Your message has been correctly sent')), $var_list, $from, null, null, null,
$file_attachment, null, _PS_MAIL_DIR_, false, null, null, $contact->email)) {*/
                        if (!Mail::Send($this->context->language->id, 'contact', Mail::l('Message from contact form').' [no_sync]',
$var_list, $contact->email, $contact->name, null, null,
$file_attachment, null,    _PS_MAIL_DIR_, false, null, null, $from) )
{
$this->errors[] = Tools::displayError('An error occurred while sending the message.');
}
                   // }
Это отключает обратное письмо и удаляет ссылки из текста.
Кстати, найти сайты-паразиты можно через сервис https://ru.myip.ms/info/whois/
Для 1.7 этот вариант подходит?
21 Февраль 2018, 18:14:18
Ответ #27
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
Для 1.7 этот вариант подходит?
У меня 1.6
У 1.7 есть файлы /controllers/front/ContactController.php и classes/Validate.php ?
22 Февраль 2018, 05:27:50
Ответ #28
  • Новичок
  • *
  • Сообщений: 15
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цитата: Belena
Для 1.7 этот вариант подходит?
Нет, в 1.7 за форму обратной связи отвечает модуль contactform, в нем функция sendMessage(), там можно закомментировать отправку подтверждающего письма на указанный емейл (чтобы предотвратить рассылку магазином спама) или, вообще, первой строкой функции поставить return;, чтобы полностью отключить прием сообщений через КФ.
22 Февраль 2018, 11:49:35
Ответ #29
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Извините, этот код

if ((strpos($html, '<')) !== false) {
            return false;
        }

не подходит