Cómo evitar el SPAM en el formulario de contacto de Prestashop
A pesar de que hay mucha más seguridad en internet con respecto a los bots de spam, todavía podemos encontrarnos alguno capaz de colarse entre la seguridad de nuestro formulario de contacto de la tienda Prestashop y encontrarlos en nuestra bandeja de entrada. Por todos los inconvenientes que puede ocasionarnos esto, como colapsarnos la bandeja de entrada o «perder» correos realmente importantes entre montañas y montañas de spam, es muy importante, por no decir imprescindible, cuidarnos de este tipo de ataques, bien sea incluyendo captchas o instalando algún módulo, entre otras opciones.
El problema de recibr spam en Prestashop, es bastante común a todos los dueños de tiendas online Prestasho, esto es debido blablalbla….si recibes un montón de spam en tu bandeja de entrada, este es un
Indice
Conoce primero a tu enemigo: el Spam
El Spam es lo que comúnmente conocemos como correo basura . Actualmente, en manos de bots capaces de recopilar información y direcciones de email para, posteriormente, enviar correos electrónicos publicitarios de manera masiva. Estos bots también son capaces de hacer uso del formulario de contacto de nuestra tienda Prestashop para enviarnos spam, o correos electrónicos no deseados, debido principalmente a que no disponemos de
medidas para detenerlos de una forma efectiva.
En Prestashop es bastante sencillo encontrar la url para acceder al formulario de contacto y enviar spam puesto que siempre es la misma:
prestashop/index.php?controller=contact-form
Usar url amigables tampoco es una solución definitiva, pues lo normal es que se produzca una redirección de la anterior url a la reescrita, por lo que no se soluciona el problema de que es fácil encontrar y automatizar un ataque de spam a tu web.
Una vez aquí, ya sólo tienen que completar los datos del formulario de contacto añadiendo la publicidad que quieran incluir, e incluso escribiendo uno o múltiples links de acceso. Todo esto se une al problema que si no ponemos una solución lo antes posible, el bot repetirá esta operación todas las veces que pueda.
Cada vez que un robot de spam tiene éxito se envían dos correos electrónicos uno que acaba en tu bandeja de entrada y otro que es enviado a su dominio por lo que pueden monitorizar su éxito y concentrar los ataques .
Consecuencias del Spam en tu tienda Prestashop
Puede que llegues a pensar que aunque sí que puede llegar a ser molesto recibir cientos o miles de emails de publicidad, estos no van a afectar de forma directa a tu tienda Prestashop ya que no van a provocar problemas en el diseño de la tienda o en el inventario de productos. Sin embargo, nada más lejos de la realidad ya que todos estos correos de spam hacia tu tienda Prestashop sí que pueden provocar efectos negativos de un calibre bastante grave.
Los dos efectos más importantes a tener en cuenta son:
Lista negra de tu dominio
Debido a la capacidad de recopilar los correos electrónicos por parte de los bots de spam, tu dominio aparecerá en todos los correos de spam que ese o esos bots envíen al público en general. Es decir, esto puede ocasionar que tu dominio quede registrado en una lista negra por parte de los proveedores de correo electrónico y que, por lo tanto, todos los emails que tú quieras enviar (transacciones, newsletters…) vayan directamente a la bandeja de «correo no deseado», o spam, de tus propios clientes. (Lee esto si quieres saber más sobre las listas negras de dominios).
Sobrecarga del servidor
Si para el envío de tus emails utilizas PHP, los envíos de spam masivo habrán sobrecargado tu servidor y esto podría ralentizar la velocidad de carga de las páginas de tu tienda Prestashop. Por el contrario, si usas SMTP y, además, has contratado un proveedor externo de envío de correos electrónicos del tipo de Mailchimp o MailJet, los envíos ocasionados por los bots se descontarán de tu saldo pudiendo provocar que te excedas del plan contratado y, por lo tanto, tengas que pagar más dinero del que esperabas. Si te interesa mejorar el rendimiento de Prestashop no te pierdas esta entrada.
Soluciones para evitar el Spam en Prestashop
La primera solución que te proponemos para evitar la entrada masiva de correos de spam a tu bandeja de entrada a través del formulario de contacto, es tener actualizada tu tienda Prestashop a la última versión estable de la plataforma e instalar un sistema Captcha en el formulario de contacto. Prestashop 1.7 ha reducido notablemente los ataques de bots de spam, pero siempre hay alguno que consigue traspasar.
Hay dos formas de configurar un sistema de verificación mediante captcha, es decir, comprobar que el correo está siendo enviado por una persona y no por un bot de spam, en cuyo caso lo bloquearía. La primera consiste en instalar un módulo de pago para el formulario de contacto de Prestashop, mientras que la segunda se trata de instalar un recaptcha gratuito de Google de forma manual. Ambas opciones nos ayudarán a bloquear el spam de Prestashop.
Hay que decir que esta segunda opción de recaptcha puede parecer más complicada y quizá se necesiten algunos conocimientos de codificación, pero sin duda es de las mejores alternativas y formas para proteger nuestra tienda Prestashop de indeseados ataques de spam.
Para integrar el reCaptcha de Google y dar un extra de seguridad a los formularios de nuestra página frente al Spam, vamos a intentar explicarlo de la forma más sencilla posible.
Veremos cómo se hace en PHP, aunque también puedes replicarlo en otros lenguajes de programación de una manera bastante fácil. De cualquier modo, siempre podéis consultar el soporte técnico para Prestashop cuando necesitéis ayuda extra.
Registro del reCaptcha en Google
El primer paso es el más sencillo, ya que sólo tendremos que ir a este enlace y rellenar el panel de administración que estamos visualizando con los datos de la página donde vayamos a colocar el reCaptcha para completar el registro.
El campo «Etiqueta» sirve para ayudarnos a identificar la zona de la página donde vamos a colocar el reCaptcha, y hacerlo más cómodo en un futuro, aunque puedes dejarlo en blanco si prefieres.
A continuación, elegimos el tipo de reCaptcha que queremos (V3, invisible…), y, por último, en el campo “Dominios”, escribimos el dominio, y subdominios si fuese necesario, donde vayamos a aplicar el reCaptcha, aceptamos los términos del servicio y pulsamos el botón de «Register.»
El problema de spam en la tienda online es un problema asal igual que cuando se produce un error interno en el servidor y esto produce el tan conocido error 500 en Prestashop.
Añadir reCaptcha a una web
Tras esto, en la nueva pantalla, encontraremos una serie de claves e información que necesitamos para integrar el reCaptcha en nuestra página. Los datos más importantes son la «Clave del sitio» y la «Clave secreta». La “Clave del sitio” es con la que podemos renderizar el captcha en la página, y se puede visualizar sin problemas en el código fuente de la página.
Por otro lado, la “Clave secreta” es la que nos ayuda a comunicarnos con Google para que acepte, o no, la validación del captcha. Esto se realiza en el backend de la página y será un dato privado que no podrá estar visible en ninguna parte de la página.
En el código de nuestra página, cargamos dentro de la etiqueta <head> el script que proporciona Google para que el reCaptcha funcione de una manera óptima:
Además del script, necesitamos tener un contenedor para que este renderice el captcha; e indicamos dónde preferimos que aparezca el captcha, poniendo el código correspondiente en el lugar escogido:
También podemos escoger el estilo del reCaptcha entre dos variaciones, un tema claro y otro oscuro. Para establecerlos, pondremos el atributo data-theme de una de las siguientes formas dependiendo del estilo escogido:
Tras esto, deberíamos ser capaces de ver el reCaptcha en la página aunque todavía no sería funcional, ya que falta la parte de PHP para que cumpla con su función.
Integrar reCaptcha en PHP
Para esta sección disponemos de dos opciones. La primera consiste en descargar la siguiente librería e incluirla en la página PHP encargada de procesar y enviar los datos de formulario:
Después de esto, sólo habría que copiar el siguiente código cuando queramos verificar que el código es correcto y trabajar con la información recibida. Este código valida la clave secreta, y después con la IP del usuario y el valor recibido del captcha verifica que sea una persona y no un bot.
La segunda opción está basada en cURL, y no necesitamos una librería externa. Con esta opción, enviamos a Google mediante cURL la misma información que en la opción anterior (IP, clave secreta y valor del captcha) para poder obtener una respuesta positiva, si es una persona, o negativa, en caso de ser un bot.
En esta opción el código a utilizar será el siguiente:
Spam de origen ruso (.ru)
El spam de origen ruso es uno de los más frecuentes de entre los problemas de Spam en Prestashop y que llegan a nuestra bandeja de entrada a través del formulario de contacto, esta vez de direcciones rusas .ru. La forma de solucionarlo es hacer un override en el formulario de contacto en Prestashop: ContactController.php
A continuación, añadimos el siguiente código:
Con esto habremos creado una función que aplicará un filtrado selectivo a los mails con extensión “.ru” en lugar de bloquearlos todo por su procedencia. Dependiendo de nuestra preferencia.
Conclusión
De la misma forma que cuidamos a nuestros clientes, sin introducir publicidad intrusiva, debemos combatir con todos nuestros recursos el spam indiscriminado porque acaba afectando a la percepción de los clientes y a las ventas de los eCommerce honestos. Si sufres ataques de spam en tu Prestashop no dudes en contactar con nosotros.