Как предотвратить регистрацию спам-аккаунта, кроме включения CAPTCHA в формах (которые я уже пробовал)? Мы имеем дело с их постоянным потоком.
Первое поле имени всегда состоит из русских символов, поэтому, если вам не удастся найти более простой маршрут, может быть, это способ обнаружить определенный символ и заблокировать регистрацию в этом случае?
magento2
magento2.1.11
brackfost
источник
источник
Ответы:
Мы прошли через ту же проблему: ограничение максимальной длины было легко обойдено (попробуйте сами, удалив класс max-length-25 из html).
Итак, вот что я нашел:
Решение 1. Блокировка по IP: каждая подписка на учетную запись использует разные IP-адреса от Колумбии до Вьетнама ...
Решение 2: Блокировка с помощью агента пользователя: это может быть подделкой ... Это работает, если вы хотите ограничить помарки сканеров.
Решение 3: Используйте HoneyPot: может работать, но если бот уже сфокусирован на вас, я думаю, он наверняка знает, какие поля отправлять (см .: https://magento.stackexchange.com/a/104261/50635 )
Решение 4: Captcha (Magento или Google): может работать, но некоторые люди говорят, что это было преодолено
Решение 5. Измените шаблон электронной почты и добавьте подтверждение по электронной почте :
Решение 6. Обновите правила ограничения полей из базы данных: непосредственно в таблице customer_eav_attribute , обновите строки с attribute_id = 5 [firstname] и attribute_id = 7 [lastname] и замените 255 на 25 :
a:2:{s:15:"max_text_length";i:255;s:15:"min_text_length";i:1;}
a:2:{s:15:"max_text_length";i:25;s:15:"min_text_length";i:1;}
Решение 6 кажется самым быстрым и эффективным способом предотвращения спам-ботов, так как они используют более 25 символов.
С тех пор, больше не было поддельной учетной записи! Задача решена.
Если они попытаются с меньшим, это по крайней мере ограничит их в попытке фишинга.
Вы можете проверить, сколько пользователей уже имеют имя или фамилию длиной более 25 символов, в нашем случае это действительно незначительно:
источник
Учитывая, что мы говорим о регистрации аккаунта, кажется, вы на правильном пути. Вы пытались изменить тему регистрации электронной почты?
это, вероятно, в приложении / locale / yourlanguage / template / email / account_new.html
источник
В качестве дополнительного примечания я удалил учетные записи спама со следующим кодом:
источник
App/Code/Ibex/Deleter/view/frontend/templates/customer.phtml
а затем создалdeleter_index_index.xml
файлDeleter/view/frontend/layout
с <block class = "Ibex \ Deleter \ Block \ Delete" name = "delete" template = "Ibex_Deleter :: character.phtml" />, чтобы при Вы идете на yoursite.com/deleter, код будет работать. Просто обязательно деактивируйте и удалите модуль после этого.Используйте cloudflare или другой брандмауэр, чтобы заблокировать некоторые страны, если можете. Китай, Гонконг, Россия. Однако это не останавливает весь спам и не работает, если вам, конечно, нужно, чтобы эти страны имели доступ. Но было полезно позволить мне на самом деле использовать админ-панель, так как сервер довольно сильно забивали.
Включите сборку в Google Recaptcha или используйте альтернативный плагин, если вы не обновили Magento до 2.3.0+
В Magento 2.3 для включения встроен Google reCAPTCHA.
1) Посетите магазины> Настройки> Конфигурация> Безопасность> Google reCAPTCHA 2) Создайте невидимую рекапчу Recaptcha v2 или я не бот-ключ. 3) Введите их в конфигурацию администратора на этой странице и включите ее в веб-интерфейсе для использования при создании пользователя.
Однако включение других функций не может повредить.
Для очистки существующих учетных записей найдите шаблоны в их входных данных и создайте запросы для их выбора, одновременно убедившись, что ваши обычные пользователи не являются частью этого набора данных.
Вы можете удалить их из таблицы customer_entity.
Пример SQL-кода с сайта, который я очистил: создайте свой собственный, так как он должен учитывать ваши обстоятельства, ваш набор данных и т. Д. Не возлагайте на меня ответственность, если вы уничтожите неправильных пользователей, сначала сделайте резервную копию!
Убедитесь, что старая базовая Magento Captcha отключена. Клиенты> Конфигурация клиента> CAPTCHA
Включить CAPTCHA на витрине магазина: нет
Как это будет конфликтовать с Google reCAPTCHA ...
Официальная документация ссылки:
https://docs.magento.com/m2/ce/user_guide/configuration/security/google-recaptcha.html
https://docs.magento.com/m2/ce/user_guide/stores/security-google-recaptcha.html
Похоже, что боты просто попадают в конечную точку создания учетной записи (да, даже если вы удаляете кнопки / ссылки «Создать учетную запись» из своей темы), но рекомендуется удалить их учетные записи или деактивировать, поскольку они могут спать позже и спамить другие вещи, и они занимают место в твоя БД все равно ....
Удачи всем.
источник
Вы можете легко заблокировать домены и настроить отображение сообщения об ошибке, когда пользователь пытается зарегистрироваться в домене электронной почты в вашем черном списке. Полные инструкции заключаются в следующем -
Создайте новый модуль с именем EmailCheck в папке Ecomsolver
Шаг - 1 Напишите следующий код на панели администратора. Путь к файлу будет -
Ecomsolver >EmailCheck > etc > Adminhtml > System
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Config:etc/system_file.xsd"> <system> <tab id="ecomsolver" translate="label" sortOrder="999"> <label>Ecomsolver</label> </tab> <section id="emailblock" translate="label" sortOrder="130" showInDefault="1" showInWebsite="1" showInStore="1"> <class>separator-top</class> <label>Email Check</label> <tab>ecomsolver</tab> <resource>PixieMedia_General::general_config</resource> <group id="domains" translate="label" type="text" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1"> <label>Domain Names</label> <field id="domains" translate="label" type="textarea" sortOrder="1" showInDefault="1" showInWebsite="1" showInStore="1"> <label>Domain names to block</label> <comment>Comma separated values eg google.co.uk,mail.ru,some.com</comment> </field> <field id="message" translate="label" type="textarea" sortOrder="1" showInDefault="1" showInWebsite="1" showInStore="1"> <label>Message to display</label> <comment>The error message to show users who try to register with one of the above domain names</comment> </field> </group> </section> </system> </config>
Шаг - 2 Запишите следующий код в файл. Путь к файлу будет -
Ecomsolver >EmailCheck > etc > Frontend > di
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> <type name="Magento\Customer\Controller\Account\CreatePost"> <plugin name="restrictCustomerEmail" type="Ecomsolver\Emailcheck\Model\Plugin\Controller\Account\RestrictCustomerEmail"/> </type> </config>
Шаг - 3 Запишите следующий код в XML-файл с именем Config. Путь к файлу будет -
Ecomsolver >EmailCheck > etc > Config
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd"> <default> <emailblock> <domains> <domains>163.com,mail.ru</domains> </domains> <message> <domains>We do not allow registration from your email domain</domains> </message> </emailblock> </default> </config>
Шаг - 4 Запишите следующий код в XML-файл с именем Module. Путь к файлу будет -
Ecomsolver >EmailCheck > etc > Module
<config xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd"> <module name="Ecomsolver_Emailcheck" setup_version="1.0.0"> </module> </config>
Шаг - 5 Создайте имя папки Model в EmailCheck. Затем создайте подпапку
Plugin > Controller > Account
. Напишите следующий код в php-файле с именем RestrictCustomerEmail. Путь к файлу php будет -Ecomsolver >EmailCheck > Plugin > Controller > Account > RestrictCustomerEmail
/*Ecomsolver @@@@@@ ecomsolver@gmail.com*/ namespace Ecomsolver\Emailcheck\Model\Plugin\Controller\Account; use Magento\Framework\Controller\Result\RedirectFactory; use Magento\Framework\UrlFactory; use Magento\Framework\Message\ManagerInterface; use Magento\Framework\App\Config\ScopeConfigInterface; class RestrictCustomerEmail {
источник
Я решил это, добавив следующий код в .htaccess как отладочную партию, я ничего не нашел, но когда создал одно событие при сохранении клиента после того, как получил это, а затем восстановил его сейчас.
источник