4webs

Solución al SPAM que llega del formulario de contacto de Prestashop

Los robots SPAM están a la orden del día y a pesar de que exista mayor seguridad en la red, algunos terminan por «colarse» en el formulario de contacto de nuestra tienda Prestashop. Tanto si estás al tanto como si estás sufriendo esta recepción masiva de correos electrónicos publicitarios no deseados en tu bandeja de entrada, te recomendamos que sigas leyendo porque hoy te explicaremos cómo poder solucionar el SPAM que se cuela en el formulario de contacto de Prestashop.

Antes de seguir con el artículo, puede que también te interese cómo proteger los módulos con PrestaTrust.

¿Qué es el SPAM?

SPAMBOT es lo que se conoce como la capacidad de recopilar direcciones de correo electrónico por parte de robots para enviar correos de forma masiva indeseados, en Internet. Además, en el caso que estamos analizando hoy, estos bots también utilizan el formulario de contacto de una web para enviar correos electrónicos no deseados, constantemente, sin que nosotros hayamos dado previo consentimiento y porque no tenemos ningún medio para detenerlos o no lo suficientemente implacable.

¿Cómo lo hacen? Pues identifican el CMS utilizado por el sitio en el que se encuentran (en nuestro caso, PrestaShop) y agregan la extensión de url para acceder a la página del formulario de contacto (en Prestashop, el formulario de contacto es: prestashop/index.php?controller=contact-form). Cuando llegan aquí, rellenan automáticamente el formulario, incluyendo contenido comercial en el mensaje y del que la mayoría de ocasiones también añaden un link o varios.

Cuando nos envían un correo electrónico desde el formulario de contacto de Prestashop, recibimos el email y su emisor recibe una copia. La dirección de correo electrónico destino recibirá el mensaje comercial junto con una dirección de email de un supuesto emisor y tu dominio o dirección de email a la que está enviando ese mensaje. Y es más, si no ponemos remedio, el robot repetirá la operación tantas veces como sea posible.

Formulario de contacto de Prestashop

¿Qué consecuencias tiene SPAMBOT en tu tienda PrestaShop?

Aunque pueda parecer que a priori que no afecta directamente a tu tienda online, es decir, que no provoca ningún problema en tu inventario, productos, diseño web, etc., aparte de recibir millones de molestos correos, sí que tiene un efecto negativo que pueden llegar a ser graves como:

  • Lista negra de tu dominio. Como este tipo de programa puede recopilar correos electrónicos y además tu dominio aparecerá en todos esos correos que son SPAM, puede que, con toda probabilidad, tu dominio vaya directamente al registro de las listas negras de proveedores de correo electrónico y como consecuencia, los envíos de tus correos electrónicos reales sobre transacciones, newsletter y demás, irán directamente a la bandeja SPAM de los clientes.
  • Facturación mayor de correos electrónicos enviados/sobrecarga del servidor. Si utilizas la función php para enviar tus correos electrónicos, el envío masivo de correos electrónicos por parte de los robots sobrecargará innecesariamente tu servidor, lo que ralentizará la velocidad de carga de las páginas de tu tienda. Si usas la función SMTP y tienes contratado un proveedor de servicios externo de envío de emails como MailJet, Mailchimp o Acumbamail por ejemplo, ten en cuenta que los envíos realizados por los robots se deducirán de tu saldo, lo que puede ocasionar que te pases del plan de precios que tengas contratado y por tanto estos proveedores de servicios de envíos masivos de emails, te facturen más dinero del esperado.

¿Cómo evitar el SPAM en prestashop?

Para bloquear el envío de correos no deseados por robots y que afecte a tu negocio online, te recomendamos configurar un sistema Captcha (ingreso manual de un código que se muestra en una imagen) en el formulario de contacto. Por lo general, el formulario de contacto de esta plataforma de ecommerce en la versión 1.7, no suele recibir ataques de spamers pero puede darse el caso de que recibas un ataque masivo de emails sobre todo si sigues con la versión 1.6 así que, ya va siendo hora que actualices de la versión 1.6 a la versión 1.7 porque además, PS dejará de tener en cuenta la versión 1.6 a partir de noviembre de 2018.

Para evitar estar perdiendo tiempo en borrar correos electrónicos y las posibles consecuencias que hemos mencionado anteriormente, asegúrate de tener actualizada la tienda a la última versión estable e instalar un captcha en el formulario de contacto. Aquí tienes el calendario de lanzamientos de Prestashop para este año para que puedas ver cuándo se lanzarán parches de las versiones 1.6 y 1.7 y las versiones de 1.7. Volviendo al tema del sistema Captcha, hay dos maneras de instalar un captcha para verificar que los correos son spam y entonces bloquearlos (o como dice Google, verificar que eres humano):

  • Instalar un módulo para el formulario de contacto de Prestashop (de pago)
  • Instalar un captcha de Google manualmente (recaptcha gratis)
  • Programar una función en Preatashop.

La segunda opción puede que sea más tediosa de llevar a cabo y requiere de ciertos conocimientos de codificación, pero es una de las mejores alternativas para proteger nuestra tienda online. En el siguiente video se explica cómo integrar Google recaptcha en tu sitio web y existen infinidad de video tutoriales que puedes encontrar en Youtube e incluso desde la propia página de Google donde encontrarás más información al respecto.

Solución a los correos .ru en Prestashop

Y para los más técnicos, con conocimientos en Prestashop, hay otra solución que te puedes hacer tu mismo y así solucionar el spam que te llega por el formulario de contacto, principalmente de las dirección .ru,  de Rusia.

Lo primero que tenemos que hacer, es hacer un override en Prestashop del formulario de contacto, ContactController.php

Necesitamos crear el método para poder añadir nuestras líneas, por lo que tenemos que añadir el siguiente código:

class ContactController extends ContactControllerCore
{
public function postProcess()
{
if(Tools::isSubmit('submitMessage')) {

$message = Tools::getValue(‘message’);
$from = Tools::getValue(‘from’);

$banned_in_email = [‘.ru’];
$banned_content = [‘email marketing’];

foreach ($banned_in_email as $string) {
if(strstr($from, $string))
$this->errors[] = Tools::displayError(‘This email address is not allowed’);
}

foreach ($banned_content as $string) {
if(strstr($message, $string))
$this->errors[] = Tools::displayError(‘Invalid Content’);
}
}
parent::postProcess();
}
}

Lo que hemos hecho es buscar la función que se encarga de enviar el correo, y añadir dos variables que buscan los dominios acabados en .ru, y si contiene mail marketing, que es el contenido que normalmente nos mandan, si no podríamos usar solo el mail y con eso sería suficiente, en el caso que contenga cualquier dato del que hayamos puesto en las variables dará un error y no dejará enviar el correo.

Y ale, a seguir disfrutando de las ventas.