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.

Instrucciones para otras versiones o si prefieres hacerlo manualmente: https://www.prestashop.com/forums/topic/981159-security-customer-validation-13-17/
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
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.
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
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.