¿Cómo evitar el registro de la cuenta de spam, además de habilitar CAPTCHA en los formularios (que ya he probado)? Estamos lidiando con una inundación constante de ellos.
El campo de nombre siempre es caracteres rusos, por lo que si falla una ruta más fácil, ¿tal vez una forma de detectar un determinado carácter y bloquear el registro en ese caso?
magento2
magento2.1.11
brackfost
fuente
fuente
Respuestas:
Pasamos por el mismo problema, la limitación de longitud máxima frontal se omitió fácilmente (pruébelo eliminando la clase de longitud máxima-25 de html).
Así que aquí está lo que encontré:
Solución 1: Bloqueo a través de IP: cada suscripción de cuenta utiliza una IP diferente desde Colombia hasta Vietnam ...
Solución 2: Bloqueo a través del Agente de usuario: se puede falsificar ... Funciona si desea limitar las manchas de rastreadores.
Solución 3: Use HoneyPot: puede funcionar, pero si el bot ya lo enfocó, creo que seguramente sabe qué campos publicar (consulte: https://magento.stackexchange.com/a/104261/50635 )
Solución 4: Captcha (Magento o Google): puede funcionar, pero algunas personas dijeron que se superó
Solución 5: edite la plantilla de correo electrónico y agregue el correo electrónico de confirmación :
Solución 6: Actualice las reglas de limitación de campos de la base de datos: directamente en la tabla customer_eav_attribute , actualice las filas con attribute_id = 5 [nombre] y attribute_id = 7 [apellido] y reemplace 255 por 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;}
La Solución 6 parece la forma más rápida y efectiva de prevenir los robots de spam, ya que utilizan más de 25 caracteres.
Desde entonces, ¡NO SE CREARON MÁS CUENTAS FALSAS! Problema resuelto.
Si intentan con menos, al menos los restringirá en su intento de phishing.
Puede verificar cuántos usuarios ya tienen un nombre o apellido de más de 25 caracteres, en nuestro caso, realmente menores:
fuente
Teniendo en cuenta que estamos hablando del registro de cuenta, parece que está en el camino correcto. ¿Has intentado cambiar el asunto del registro de correo electrónico?
probablemente esté en app / locale / yourlanguage / template / email / account_new.html
fuente
Como nota complementaria, eliminé las cuentas de spam con el siguiente código:
fuente
App/Code/Ibex/Deleter/view/frontend/templates/customer.phtml
y luego hice undeleter_index_index.xml
archivoDeleter/view/frontend/layout
con <block class = "Ibex \ Deleter \ Block \ Delete" name = "delete" template = "Ibex_Deleter :: character.phtml" /> allí para que cuando vaya a yoursite.com/deleter se ejecutará el código. Solo asegúrese de desactivar y eliminar el módulo después.Use cloudflare o algún otro firewall para bloquear algunos países si puede. China, Hong Kong, Rusia. Sin embargo, esto no detiene todo el spam y no funciona si necesita que esos países puedan acceder, por supuesto. Pero fue útil dejarme usar el panel de administración, ya que el servidor estaba siendo golpeado bastante duro.
Habilite la compilación en Google Recaptcha o use un complemento alternativo si no ha actualizado Magento a 2.3.0+
En Magento 2.3 para habilitar el construido en Google reCAPTCHA.
1) Visite Tiendas> Configuración> Configuración> Seguridad> Google reCAPTCHA 2) Genere Recaptcha v2 invisible recaptcha o no soy un bot de teclas. 3) Ingrese en la configuración de administrador en esa página y habilítela en la interfaz para Usar en Crear usuario.
Sin embargo, la habilitación para otras funciones tampoco puede doler realmente.
Para limpiar las cuentas existentes, encuentre patrones en sus entradas y cree consultas para seleccionarlas mientras se asegura de que sus usuarios normales no formen parte de ese conjunto de datos.
Puede eliminarlos de la tabla customer_entity.
Ejemplo de SQL de un sitio que limpié: cree el suyo propio, ya que sería necesario tener en cuenta sus circunstancias, su conjunto de datos, etc.
Asegúrese de que el antiguo Magento Captcha básico esté deshabilitado. Clientes> Configuración del cliente> CAPTCHA
Habilitar CAPTCHA en Storefront: No
Como entrará en conflicto con Google reCAPTCHA ...
Enlaces de documentación oficial:
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
Los bots simplemente parecen alcanzar el punto final de creación de la cuenta (Sí, incluso si elimina los botones / enlaces Crear cuenta de su tema), pero se recomienda eliminar sus cuentas o desactivarlas, ya que podrían dormir hasta más tarde y enviar spam a otras cosas y usar el espacio en su base de datos de todos modos ...
Buena suerte a todos.
fuente
Puede bloquear fácilmente los dominios y configurar el mensaje de error que se mostrará cuando un usuario intente registrarse con un dominio de correo electrónico en su lista de bloqueo. Las instrucciones completas son las siguientes:
Cree un nuevo módulo con un nombre EmailCheck en la carpeta Ecomsolver
Paso - 1 Escriba el siguiente código en el panel de administración. La ruta del archivo será:
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>
Paso - 2 Escribe el siguiente código en un archivo. La ruta del archivo será:
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>
Paso - 3 Escriba el siguiente código en el archivo XML con el nombre Config. La ruta del archivo será:
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>
Paso - 4 Escriba el siguiente código en un archivo XML con el nombre Módulo. La ruta del archivo será:
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>
Paso - 5 Crea el nombre de la carpeta Modelo en EmailCheck. Luego crea una subcarpeta
Plugin > Controller > Account
. Escriba el siguiente código en el archivo php con el nombre RestrictCustomerEmail. La ruta del archivo php será:Ecomsolver >EmailCheck > Plugin > Controller > Account > RestrictCustomerEmail
/*Ecomsolver @@@@@@ [email protected]*/ 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 {
fuente
Lo resolví agregando el siguiente código a .htaccess como lote de depuración, no encontré nada, pero cuando creé un evento en el guardado del cliente después de obtener esto y luego lo reservé ahora.
fuente