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.
Gracias por tomaros la preocupación de buscar una solución para este problema que padecemos los administradores de tiendas prestashop.
Gracias por el post. Parece que se ha solucionado aplicando el parche.
Por fin una solución, empezábamos a estar preocupados…
Da gusto tener un hosting como vosotros, que siempre responde y ayuda 🙂
Un saludo,
Hola buenas tardes.
Una pregunta una vez realizada la accion ¿se borra el archivo patch122.php del directorio de administracion?
Saludos.
Hola Jose, el archivo no se elimina de forma automática tras ejecutarlo. Por FTP o desde el administrador de archivos del hosting puede seleccionarlo y eliminarlo.
Gracias por publicar la solución, tenemos un cliente que desde hace un tiempo se viene quejando de eso y de tambien que los formularios que tienen en su web se le llenan de spam, con textos a enlaces de webs como rusas, existe algun tipo de solucion para eso?, nosotros hemos instalado un plugin de seguridad pero parece que no hace mucho. Alguna idea?
Hola, la solución definitiva a un acceso a los formularios de forma masiva por parte de bots automáticos pasaría por instalar un recaptcha con validación PHP (ya que esos ataques suelen ser a través de una petición POST a la url directamente) en cada uno de ellos.
Muchas gracias por el post y la ayuda.
Buenas tardes, yo apliqué dicho patch a las webs de varios clientes que estaban siendo atacados por tales registros falsos. El problema es que ahora estamos comprobando que dicho patch no deja que se registren clientes nuevos y reales, da siempre error indicando que el campo nombre y apellidos no son validos, aunque se indiquen nombres y apellidos normales. ¿Alguien sabe de una solución o como desinstalar este patch que ha causado dicho error?
Gracias anticipadas