Inicio InformáticaMensajes de spam en servicio al cliente de Prestashop

Mensajes de spam en servicio al cliente de Prestashop

Publicado por entreunosyceros

AVISO: Esta entrada tiene más de dos años desde su publicación. Es posible que el contenido esté desactualizado.

En el siguiente artículo voy a dejar una solución al problema que recientemente ha aparecido a un problema con el formulario de contacto de Prestashop. Mediante este formulario en algunas páginas se estaban colando mensajes de spam que inundan la bandeja de entrada de nuestras tiendas. Generalmente esto debería solucionarse utilizando un Captcha, pero estos mensajes llegados desde dominios .ru  pasan por encima de las Captcha.

mensaje span prestashop

Como se puede ver en la anterior captura, estos mensajes deben de llegar del norte de Europa, y en un par de días te puedes encontrar 100 mensajes o más en el buzón de entrada, lo que puede volver a este un problema en Prestashop.

Solucionar el problema de los mensajes de Spam del servicio al cliente de Prestashop

Como digo, me he puesto a buscar por internet y después de probar diferentes Captchas y comprobar que todas fallaban pues me he puesto a buscar en la web de Prestashop y ahí ha sido donde encontré una respuesta a este problema que da uno de los los usuarios. En esta página dan varias soluciones, pero esta, que ha sido la primera que probé, funcionó perfectamente (al menos por el momento). Aun que según he ido leyendo esta solución no es algo que vaya a funcionar en todas las versiones.

El caso es que las modificaciones que hay que realizar este usuario las explica muy bien, pero por tenerlas más a mano las voy a dejar aquí publicadas también.

Según este usuario solo hay que modificar dos archivos:

Archivo /controllers/front/ContactController.php

Dentro de la función: public function postProcess() que encontraremos dentro de este archivo tendremos que realizar las siguientes líneas:

Debajo de:

if (Tools::isSubmit('submitMessage')) {

Habrá que añadir:

$saveContactKey = $this->context->cookie->contactFormKey;

Debajo de:

 $message = Tools::getValue('message');

Añadir:

$url = Tools::getValue('url');

Evitar spam contactcontroller 1

Si seguimos bajando más para abajo en este mismo archivo, tendremos que escribir debajo de:

} elseif (!empty($file_attachment['name']) && !in_array(Tools::strtolower(substr($file_attachment['name'], -4)), $extension) && !in_array(Tools::strtolower(substr($file_attachment['name'], -5)), $extension)) {
                 $this->errors[] = Tools::displayError('Bad file extension');

Lo siguiente:

} elseif ($url === false || !empty($url) || $saveContactKey != (Tools::getValue('contactKey'))) {
         $this->errors[] = Tools::displayError('An error occurred while sending the message.');

Evitar spam contactcontroller 2

Continuamos bajando en el archivo hasta:

$this->context->smarty->assign('customerThread', $customer_thread);

Y debajo añadimos:

$contactKey = md5(uniqid(microtime(), true));
$this->context->cookie->__set('contactFormKey', $contactKey);

También tendremos que cambiar:

 $this->context->smarty->assign(array(
            'contacts' => Contact::getContacts($this->context->language->id),
            'message' => html_entity_decode(Tools::getValue('message'))
        ));

Por:

 $this->context->smarty->assign(array(
             'contacts' => Contact::getContacts($this->context->language->id),
            'message' => html_entity_decode(Tools::getValue('message')),
           'contactKey' => $contactKey,
 ));

Evitar spam contactcontroller 3

Archivo /themes/TuPlantilla/contact-form.tpl

Ahora solo queda modificar el archivo de formulario de contacto. La modificación se hará sobre el botón de envío, que encontraremos en la parte de abajo de este archivo. Ahí buscaremos :

<div class="submit">

Y justo debajo de esta etiqueta escribiremos:

<input type="text" name="url" value="" class="hidden" />
<input type="hidden" name="contactKey" value="{$contactKey}" />

Evitar spam contact-form

Con estas modificaciones, y añadiendo un Captcha al formulario, han pasado más de 24 horas sin recibir más mensajes de spam en las dos tiendas Prestashop que he modificado. He de decir que una era la versión 1.6.1.4 y la otra 1.6.1.7. Quién lo necesite, puede ver los cambios que se detallan en este artículo publicados en GitHub.

También te puede interesar ...

Deja un comentario

* Al utilizar este formulario, aceptas que este sitio web almacene y maneje tus datos.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Resumen de privacidad
cookies entreunosyceros

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible.

La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudarnos a comprender qué secciones de la web encuentras más interesantes y útiles.

Nunca almacenamos información personal de ningún tipo.

Tienes toda la información sobre privacidad, derechos legales y cookies en nuestra página sobre la política de privacidad o en la página sobre nuestra política de cookies.

Cookies necesarias

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.

Cookies de terceros

Esta web utiliza las siguientes cookies adicionales:

- Mailchimp: Recordar si ya estás suscrito al boletín de noticias y sino ofrecértelo al salir.

- Accesibilidad: Para saber tus ajustes de accesibilidad en cada visita.

- Comentarios: Saber si has leído y aceptado nuestra política de privacidad a la hora de dejar un comentario en la web.

- Google Analytics: Localización para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares.

- Goggle Adsense: Anuncios personalizados según tu geolocalización y preferencias.

Dejar estas cookies activadas nos permite mejorar nuestra web.

Adblock Detectado!!

Ayúdanos deshabilitando la extensión AdBlocker de tu navegador para visitar esta web.
Si no sabes hacerlo en Chrome, consulta el siguiente enlace. Si utilizas Firefox, puedes consultar este otro enlace.
Esto mejorará tu experiencia en este sitio web.