Spam en Registro en PrestaShop
0 Flares Filament.io 0 Flares ×

Empezó ayer. Uno de mis clientes me mandó un email avisándome de que tenía nuevos clientes en PrestaShop un poco raros.

Revisamos y nos dimos cuenta de que era un ataque de SPAM a PrestaShop en toda regla. Lo primero que hicimos fue activar el módulo para evitar el SPAM ruso que ya teníamos también en el contacto, pero se saltaban los Captchas con facilidad.

Esta mañana el usuario de foros de PrestaShop Dokia publicaba una solución que funciona.

Solución al SPAM en el registro de PrestaShop

Hay que modificar dos clases de PrestaShop Validate.php y Customer.php para evitar que se pueda registrar un spammer con una web como apellido.

Además ha aportado soluciones para PrestaShop desde la 1.3 a la 1.7. Por lo que hay que agradecérselo.

Nosotros hemos aplicado la solución en Overrides para la 1.6 y parece que funciona correctamente.

En Validate.php:

 public static function isCustomerName($name)
    {
        if (preg_match(Tools::cleanNonUnicodeSupport('/www|http/ui'),$name))
           return false;

        return preg_match(Tools::cleanNonUnicodeSupport('/^[^0-9!\[\]<>,;?=+()@#"°{}_$%:\/\\\*\^]*$/u'), $name);
    }

En Customer.php:

            'lastname' =>                    array('type' => self::TYPE_STRING, 'validate' => 'isName', 'required' => true, 'size' => 32),
            'firstname' =>                    array('type' => self::TYPE_STRING, 'validate' => 'isName', 'required' => true, 'size' => 32),

Cambiarlo por:

            'lastname' =>                    array('type' => self::TYPE_STRING, 'validate' => 'isCustomerName', 'required' => true, 'size' => 32),
            'firstname' =>                    array('type' => self::TYPE_STRING, 'validate' => 'isCustomerName', 'required' => true, 'size' => 32),

Os dejo las instrucciones y un fichero para descargar con los archivos correspondientes:

Descarga el archivo: SolucionSpam.zip.

Instrucciones para PS 1.6:

Ojo, antes de copiar los archivos revisad que estos archivos no existan ya, y si lo están, tendrás que editarlos con los cambios o copiar las funciones correspondientes.

1.- Copiar los archivos Validate.php y Customer.php en Override -> Classes
2.- Borrar en /Cache el archivo class_index.php
3.- Intentar dar de alta un cliente con www.loquesea.com de apellido y comprobar que muestra un fallo.

Solución Spam en el registro PrestaShop

Instrucciones para otras versiones o si prefieres hacerlo manualmente: https://www.prestashop.com/forums/topic/981159-security-customer-validation-13-17/

0 Flares Twitter 0 Facebook 0 LinkedIn 0 Email -- Buffer 0 Pin It Share 0 Filament.io 0 Flares ×
4 Comentarios
  1. Jose Antonio 1 mes

    Hola, estoy aplicando la solución para PS 1.6, solo tengo uno de los dos archivos, el customer.php, por lo que en mi caso tendría que añadir el archivo validate.php y modificar el customer.php, es correcto?-
    Muchas gracias

    • Autor
      ipaelo 2 semanas

      Supuestamente si sigues la guía o simplemente te bajas el archivo se solucionaba.

      PrestaShop ha lanzado la versión 1.6.24 que lo soluciona.

  2. Jose Antonio 1 mes

    Buenas tardes, he probado a cambiar los códigos, pero lo valida igual que antes, no da ningún error al poner una web como apellido, como lo puedo solucionar?. Gracias

  3. Juan Carlos 1 mes

    Hola, por si no quereis tocar codigo o no teneis acceso ftp, hemos creado un modulo gratuito que lo soluciona aqui: https://www.factoriadigital.com/prestaforum/threads/solucion-a-spam-por-registros-fraudulentos-en-prestashop.1557/

    Creo que puede resultaros de interés.

Contesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

©2019 Ismael Torres 

Contacto

Puedes mandarme un email y te contestaré lo más rápido posible.

Enviando

Inicia Sesión con tu Usuario y Contraseña

¿Olvidó sus datos?