Solución a registros de usuarios falsos en Prestashop

Desde hace unos días muchos de los usuarios de tiendas Prestashop han comprobado como decenas de nuevos usuarios se registraban en sus tiendas con emails falsos y con enlaces hacia webs maliciosas. Este tipo de hackeo en un primer momento se puede detectar si el usuario recibe muchos emails rebotados que él no ha enviado, esto es así porque al ser cuentas falsas cuando Prestashop envía el mensaje de bienvenida o alta, no puede ser entregado y el servidor de destino lo rechaza con un mensaje de vuelta.

El método usado para este registro de usuarios falsos consiste en lanzar peticiones tipo POST hacia la url de registro y en esas peticiones añaden los valores para todos los campos. Esto se efectúa desde servidores hackeados fuera de España, usando varias IPs para no ser detectados y para que sea más complejo poder bloquearlo. Por nuestra parte hemos estado bloqueando todas las IPs que hemos podido comprobar que lo hacían, pero esto es solamente una solución temporal, ya que usan cada vez una distinta.

Algunos desarrolladores y en los foros de Prestashop se indica que una posible solución pasa por instalar un captcha (a nivel de PHP) en el formulario de registro.

En una entrada del foro oficial el usuario doekia ofrece también una solución alternativa relativamente sencilla que modifica los archivos classes/Validate.php y classes/Customer.php para evitar que puedan añadirse caracteres en campos que no deben incluirlos (como por ejemplo el campo de Apellidos). La url de este post es la siguiente y es compatible con Prestashop 1.5, 1.6 y 1.7:

https://www.prestashop.com/forums/topic/981159-securite-spam-customer-account-solution-13-17/

Dentro de esta misma solución, el usuario que lo ha propuesto nos facilita un enlace con todo el código que automatiza la modificación de esos archivos para no tener que hacerlo a mano. Hay que guardar un archivo con ese código para subirlo por FTP o el gestor de archivos de Plesk al directorio de administración de Prestashop y posteriormente cargar la url en un navegador:

1.- Vamos al enlace https://area51.enter-solutions.com/snippets/122

2.- Pinchamos sobre «raw» y  se abre una nueva ventana en el navegador con todo el código.

3.- Con el botón secundario del ratón le damos a «Guardar como…» y le ponemos como nombre al archivo el mismo sugerido por ese desarrollador: patch122.php

4.- Conectamos por FTP o entramos en el panel de control Plesk, y subimos el archivo dentro del directorio de administración de Prestashop.

5.- Cargamos en el navegador la url. Tiene que tener esta estructura como ejemplo: https://mitiendapresta.es/admin123/patch122.php

6.- Aparecerá en el navegador un aviso como que se ha completado el cambio: «class Validate is now overrided class Customer is now overrided END»

Seguramente los desarrolladores de Prestashop tomarán buena nota de esta incidencia para aportar una solución definitiva en la siguiente actualización de este popular e-commerce, pero mientras tanto son los desarrolladores/programadores o usuarios de las webs quien deben parchearlo.

Nota importante: Esta solución ha sido obtenida directamente desde el foro oficial de Prestashop y Loading no se hace responsable en ningún caso del mal uso o problemas derivados tras los cambios que ahí se sugieren. Siempre se recomienda generar una copia completa de seguridad del sitio antes de hacer modificaciones, o comprobar las copias de seguridad de las que se disponen en el hosting para poder restaurar en caso de incidencias.