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.

Evita el Spam en tu web

no_spamÚltimamente hay muchos scripts maliciosos que se dedican a recorrer la red en busca de direcciones de correo a las que enviar Spam.

Aquí os proponemos un método sencillo para que si un robot de este tipo pasa por vuestra web no pueda coger la dirección de correo.

Creamos un archivo de funciones de Javascript (si no lo tenemos ya), por ejemplo funciones.js y dentro ponemos el siguiente contenido:

function ocultar_enlace(correo,dominio,extension)  {
	document.write('<a href="mailto:' + correo + "@" + dominio + "." + extension + '">' + correo + "@" + dominio + "." + extension + '</a>');
}

Dentro de nuestro HTML añadiremos el enlace al archivo de funciones, este debe ir dentro del HEAD:

<script type="text/javascript" src="funciones.js"></script>

Por último nos queda colocar el siguiente código donde queramos mostrar la dirección email:

<script type="text/javascript"> ocultar_enlace("info","loading","es"); </script>

De esta forma los robots no podrán ver la dirección real, ya que no está escrita en el código. El navegador que visite la página sí la interpretará mediante Java.