Всем привет! Одолел спам через стандартную форму обратной связи в контактах, в последнее время прям очень много его. Пробовал такой метод борьбы: 1. В форму добавил невидимое поле <input id="name2" name="name2" type="hidden" value="" />; 2. К кнопке отправки добавил onclick="document.getElementById('name2').value = 'secretcode';” 3. И в mail.php код if ($_POST['name2'] != 'secretcode') exit('Spam decected'); Суть: при нажатии на кнопку отправки, секретное поле заполняется ключом и письмо отправляется. Форму защищало, но с такой системой не приходят заказы, т.к. mail.php работает как и на форму, так и на заказы. Сделал похожий метод на js: 1-2 пункты такие же как и в методе выше; 3. Добавил скрипт в contact.tpl: <script> function stopIt(){ let checkIt = document.getElementById('name2'); if (checkIt.value != 'secretcode') { alert('STOP'); } } </script> Но такую защиту обходят на раз-два. Стоит также гуглокапча (правда 2 версии), но на нее, как мне кажется, уже давно боты внимания не обращают даже. Кто как борется со спамом? Есть ли какие-то хорошие действенные методы? Версия Opencart 2.1.0.2
Так вы возьмите первый метод и встройте его в контроллер проверки формы обратной связи, а не в код mail.php. Ну или придётся в остальных местах править, а ещё другие модули существуют и т.д.
Recaptcha3 помогает, конечно, но не сильно. ИИ плохо борется с ИИ. Я тоже пробую идти путём индивидуализации системы. Например, сделать дополнительное скрытое поле (какой-нибудь факс) и отсеивать формы с заполненными данными? Или изменить html-адрес контактной страницы в системе? Большую опасность, на мой взгляд, представляет форма регистрации покупателя, которая позволяет рассылать спам с вашего адреса на адреса тех, кого бот "регистрирует". Получившие такую "регистрацию" немедленно отправляют ваш адрес в блэк-лист, в дальнейшем письма с вашего адреса почтовые сервера сразу отправляют покупателю в корзину или перестают воспринимать вообще. Зачем это нужно спамеру - не понятно. Но, к сожалению, почти весь такой спам идёт с русских ай-пи, поэтому зарубежные магазины часто блокируют весь диапазон России в htaccess.
Вот и меня достали письма типа: Зарегистрировался новый покупатель: Имя: HerbertExing Фамилия: HerbertExingDG Группа покупателей: Default E-Mail: Josh.Abdoo@bissell.com Телефон: 84519372377 Приходят они по 100-200 шт за сутки, и вроде в админке возможность регистрации клиента отключена, но все-равно как то прорываются, если только при оформлении заказа осталась возможность зарегится. Как бороться? Может кто поможет решить проблему?
POST в контроллер и всё, без разницы что вы отключили там в первом сообщении описан метод с доп.полем, но я бы усовершенствовал
Написал антиспам-модуль для OpenCart 4 на базе Yandex Smartcaptcha. Загружать отсюда: https://gitflic.ru/project/m-khlupnov/smartcaptcha
Проверил ссылку, у меня работает. Добавил видео с комментами. Добавил вложением. ПОхоже, что это то же самое, только для 3-го, а у меня для 4.