en Jump to content
  • 2
virginia

Mensajes Spam en servicio de clientes

Question

Llevo días recibiendo mensajes en Servicio cliente, todos ellos con correos terminados .ru , que son correos spam. No se como evitarlo. Adjunto captura de pantalla donde se ve que mensajes son. ¿Qué puedo hacer?

spam prestashop.jpg

Share this post


Link to post
Share on other sites

96 answers to this question

Recommended Posts

  • 1
45 minutes ago, Webmaster2Xeral said:

Yo lo he instalado en una tienda 1.7 y el módulo (La versión v2.0.4) te crea el "ContactController.php" en la carpeta override. El problema es que el módulo, supongo que por un error, intenta usar el archivo "ContacController.php" si te fijas le falta la "t" de contact, cambiando el nombre por este último a mi me ha funcionado el módulo, otra cosa es el Spam, que no me lo ha solucionado. 

Me cuelo,

En la 1.7 el controlador que controla el formulario de contacto no es el ContactController.php es en la 1.6 para atras.

Existen dos versiones del modulo para descargar en el repositorio una para la 1.7 y otra para la 1.6

Yo he instalado la de la 1.7 en una 1.7 y la de .a 1.6 en una 1.6 y sin problemas.

Share this post


Link to post
Share on other sites
  • 0
hace 4 horas, virginia dijo:

Llevo días recibiendo mensajes en Servicio cliente, todos ellos con correos terminados .ru , que son correos spam. No se como evitarlo. Adjunto captura de pantalla donde se ve que mensajes son. ¿Qué puedo hacer?

spam prestashop.jpg

Prueba añadir un captcha por el momento a la tienda: http://victor-rodenas.com/2018/01/18/captcha-para-prestashop-1-7/ a ver si por el momento puede parar el problema de forma puntual.

Share this post


Link to post
Share on other sites
  • 0

Buenas, me sumo a esto, justo hoy he comenzado a recibir exactamente el mismo tipo de mensajes, llevo más de 60, veré a hacer eso que comenta el compañero porque no sé que opciones hay para modificar esto, saludos y estaré al tanto de este post para ver opciones a solución.

Gracias.

 

 Mi versión de prestashop es la 1.6.1.3.

Edited by Nashgull

Share this post


Link to post
Share on other sites
  • 0

Buenas tardes! Yo tambien me sumo a esto! llevo 10 años trabajando en prestashop...y esta es de las mas gordas!!! A mi me llega el mismo mensaje entre 10-40 por hora!!! ose...que si sumaís...imaginad la barbaridad de mensajes que llevo borrados desde el sábado 17 de febrero cuando empezó esto!!!!

Share this post


Link to post
Share on other sites
  • 0

Hola a todos!!

Yo también hace poco los estoy recibiendo y hasta ahora no me había pasado nunca, añadí este módulo pero no funciono..

https://www.prestashop.com/forums/topic/114962-modulo-slide-captcha-40-protege-tus-forms-con-un-sencillo-captcha-ps-1417/

 

He optado por añadir estos emails a la lista negra de tu servidor. YO en mi caso uso OVH y los he bloqueado añadiendo esta dirección: *@*.ru

Espero que funcione así

Saludos

Edited by SergioE

Share this post


Link to post
Share on other sites
  • 0

Estoy recibiendo cada vez mas correos desde MAIL.RU en el formulario de pedido. ¿como puedo controlarlo? Gracias 

spam-desde-formulario-contacto.jpg

Share this post


Link to post
Share on other sites
  • 0
Just now, SergioE said:

Tiene que a ver algún módulo gratis que bloquee esas cosas, no puede ser que a estas alturas no haya nada...

¿Has probado el módulo de Hernes que recomienda el usuario @nadie ?

Share this post


Link to post
Share on other sites
  • 0
hace 49 minutos, SergioE dijo:

Tiene que a ver algún módulo gratis que bloquee esas cosas, no puede ser que a estas alturas no haya nada...

 

Entiendo que tambien has probado el ReCaptcha de Hernes: https://github.com/nenes25/eicaptcha/releases (eicaptcha)  que es el que hice referencia en el primera respuesta del tema con la reseña del blog: http://victor-rodenas.com/2018/01/18/captcha-para-prestashop-1-7/ 

Por otro lado, @Eolia esta comentando esto: https://www.prestashop.com/forums/topic/657559-resolu-spam-depuis-le-formulaire-de-contact/?do=findComment&comment=2670296

En 21/1/2018 a las 2:27 PM, Eolia dijo:

Déjà répondu ce jour.

Cette solution de re-captcha par @doekia peut vous aider: http://area51.enter-solutions.com/snippets/74

Share this post


Link to post
Share on other sites
  • 0

Yo también tengo exactamente el mismo problema desde hace unos días en mis tiendas.

Acabo de activar la localización geográfica por IP y he dejado solo acceso a España y Portugal de forma temporal para ver sí se soluciona el problema. En estos mismos foros en otros idiomas están comentando el mismo tema y parece que el acceso del spammer no es a través del front office,  si no aprovechando alguna vulnerabilidad de Prestashop a distinto nivel.

Por tanto, no estoy seguro de que funcione.

Share this post


Link to post
Share on other sites
  • 0

Muy Buenas Familia!

Otro afectado por la madre Rusia... Malditos spammer!

Llevo unos días recibiendo estos mismos mails, he instalado el modulo iecaptcha que comenta @nadie (mi puto ídolo), pero en ese proceso he hecho algo y he volado el botón de enviar mensaje. 

Es decir, el botón aparece durante 1 segundo y cuando salta el cuadro de captcha es como si lo pisara, como si saliera justo encima del botón, por lo que no es posible enviar el mensaje. 

De momento parece que he bloqueado el spam, pero también cualquier contacto de mis clientes.

Alguien me puede echar un cable a ver si recupero ese botón???

la url: www.bolsaslara.com/contactenos 

Versión de Prestashop: 1.6.1.14

Gracias.

Adjunto imagen

image.png.6ad246b9ac45de705dc5f3706dfc0cb6.png

Share this post


Link to post
Share on other sites
  • 0
hace 1 hora, FCapdevila dijo:

Hola, tenía el mismo problema y he podido solucionarlo aplicando unos cambios en el "ContactController.php" y en el "contact-form.tpl". Son estos cambios:

https://github.com/PrestaShop/PrestaShop/pull/8168/files

Ha sido realizar los cambios y dejar de recibir spam.

Esta modificación esta incluida por defecto en la ultima variante  "actual" de Prestashop 1.6.1.1X

¿Qué versión de Prestashop usas?

Share this post


Link to post
Share on other sites
  • 0
4 minutes ago, nadie said:

Esta modificación esta incluida por defecto en la ultima variante  "actual" de Prestashop 1.6.1.1X

¿Qué versión de Prestashop usas?

 

Hola, en mi caso uso la 1.6.0.9. Entiendo que la última versión de la 1.6 no está afectada por esta vulnerabilidad.

Share this post


Link to post
Share on other sites
  • 0
hace 6 horas, FCapdevila dijo:

 

Hola, en mi caso uso la 1.6.0.9. Entiendo que la última versión de la 1.6 no está afectada por esta vulnerabilidad.

 


Apunto la información sobre la versión de Prestashop que usas, por si algún forero le pasa el mismo problema, avisarle.

Cuéntanos de aquí a mañana si te ha colado algún ruso por el formulario de contacto.

Saludos,

Edited by nadie

Share this post


Link to post
Share on other sites
  • 0

Siguiendo con el tema de la versión de Prestashop de @FCapdevila  he comprobado que las modificaciones se aplicaron a partir de Prestashop 1.6.1.17, por lo tanto quien tenga versiones anteriores de Prestashop dentro de la rama de Prestashop 1.6 es conveniente aplicarlas.

Recordar: https://github.com/PrestaShop/PrestaShop/pull/8168/files

Por ejemplo, haciendo modificaciones sobre Prestashop 1.6.1.16 (por poner un ejemplo)

Fichero: /controllers/front/ContactController.php

Dentro de la función: public function postProcess()

Debajo de:

 

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

Añadir:
 

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


Debajo de:

 

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

Añadir:

 

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

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');

Añadir:

 

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

Debajo de:

 

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

Añadir:

 

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

Cambiar esto:

 $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,
 ));

Fichero:
 

/themes/TuPlantilla/contact-form.tpl

Añadir debajo de:

 

<div class="submit">

Esto:
 

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


 

Edited by nadie

Share this post


Link to post
Share on other sites
  • 0

Tambien he recibido el spam ruso este fin de semana. Uso la version 1.7.2

Pregunte al equipo de Hosting si sabia algo y me podian echar una mano. Cero ayuda.

Lo primero que hice fue hacer desaparecer el correo electronico puesto en el formulario de contacto. Con eso se detuvo el spam.

Al analizar el spam vi que venian de dos direcciones IP solamente, investigando un poco en Red,  instale el modulo Knowband Blocker, que es barato y que permite hacer diferente tipos de bloqueo.

https://www.knowband.com/es/prestashop-block-bot-user-ip-country-user-agent

Asi que bloquee las dos IP de donde venia el spam. Habilite de nuevo el formulario de contacto. De momento, va bien. Veremos que pasa mas adelante.

Edited by Eduardo

Share this post


Link to post
Share on other sites
  • 0
hace 16 horas, nadie dijo:

Fichero: /controllers/front/ContactController.php

Cambiar esto:

 


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

por


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

 

 

Bien, pero corrige esto:

Cambiar esto: 

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

Por esto:

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

En mi caso aparecía así, y has puesto repetida una línea, lo que daría error.

 

Saludos

Edited by SergioE

Share this post


Link to post
Share on other sites
  • 0

Yo también he estado afectado por el spam ruso. En mi caso (prestashop 1.6.0.9) con el modulo que ha indicado @nadie me ha funcionado, sin necesidad de modificar el código de los ficheros.

Share this post


Link to post
Share on other sites
  • 0
hace 2 horas, SergioE dijo:

 

Bien, pero corrige esto:

Cambiar esto: 


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

Por esto:


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

En mi caso aparecía así, y has puesto repetida una línea, lo que daría error.

 

Saludos

Ya lo tienes corregido. Fue una errata el pegar el código en el foro.

Y bien ¿Has recibido más rusos por el momento?.

Saludos,

Edited by nadie

Share this post


Link to post
Share on other sites
  • 0

Pues yo seré muy torpe pero intento instalar los modulos que poneis y no tengo ni idea, cuando comentais de cambiar códigos ya si que no, Mi versión de prestashop es la 1.6.1.3.  A ver si hubiese algún modulo para instalar y no tener que cambiar código...

Yo sigo recibiendo esos spam.

Saludos.

Share this post


Link to post
Share on other sites
  • 0

Cambiar esto: 

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

Por esto:

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

Después de cambiar esto y desactivar Rusia de geolocalización, para que no puedan entrar a mi tienda, no he vuelto a recibir más correos desde ayer por la tarde.

 

 

Share this post


Link to post
Share on other sites
  • 0
On 21/2/2018 at 5:14 PM, viehevo said:

Muy Buenas Familia!

Otro afectado por la madre Rusia... Malditos spammer!

Llevo unos días recibiendo estos mismos mails, he instalado el modulo iecaptcha que comenta @nadie (mi puto ídolo), pero en ese proceso he hecho algo y he volado el botón de enviar mensaje. 

Es decir, el botón aparece durante 1 segundo y cuando salta el cuadro de captcha es como si lo pisara, como si saliera justo encima del botón, por lo que no es posible enviar el mensaje. 

De momento parece que he bloqueado el spam, pero también cualquier contacto de mis clientes.

Alguien me puede echar un cable a ver si recupero ese botón???

la url: www.bolsaslara.com/contactenos 

Versión de Prestashop: 1.6.1.14

Gracias.

Adjunto imagen

image.png.6ad246b9ac45de705dc5f3706dfc0cb6.png

Me respondo a mi mismo... 
Viendo que aún sin botón seguía llegando puto-ruso-spam me puse manos a la obra e hice lo siguiente...

Antes de nada, vuelta atrás, eliminar todo lo que había estado probando, el contactcontroller y los cambios en el contact-form y demás... 

backup y actualización a la última versión del 1.6 (1.18) 

Instalé el módulo que @nadie aconsejaba, el contactcontroller y el authetification se crearon al instalar el módulo...

Borrar caché, actualizar navegador y tachán todo en su sitio.... el botón volvió a aparecer, así como el jódete-puto-ruso-captcha...

De momento 24 horas sin spam... Cruzando los dedos...

 

Share this post


Link to post
Share on other sites
  • 0

Buenas, pues yo he optado por eliminar el formulario de contacto, directamente, no puedo estar hoy sábado con más de 80 correos de contacto desde la madrugada, y esos por duplicados, al llegar un retorno de no haber sido posible entregar contestación.

Estaré atento a ver si sale alguna otra opción más factible.

Saludos y buen fin de semana a todos.

 

Share this post


Link to post
Share on other sites
  • 0

Yo he probado también a desactivar el formulario de contacto temporalmente pero a través de cambiar la url de esta página en SEO+URLs y no forzar compilación, con lo que ahora el enlace al formulario es error404. A ver si así se cansa el robot ruso. 

Share this post


Link to post
Share on other sites
  • 0

Tengo el mismo problema.
Hace algunos días probé a eliminar desde SEO+URL la página de contacto ya que no la uso en la tienda y parecía que todo funcionaba bien hasta hoy que he recibido más de 100 mails de spam ruso.

¿Alguien tiene alguna idea de como pueden estar enviando esos mails con la pagina de contacto eliminada?

Muchas gracias de antemano :)

Share this post


Link to post
Share on other sites
  • 0

Hola, yo he tenido el mismo problema desde la semana pasada, y lo he solucionado con este link.

https://www.prestashop.com/forums/topic/609900-spammer-bypasses-contact-form-captcha-no-effect/?tab=comments#comment-2691062

Y estos pasos detallados:

http://kris.talkplus.org/2017/how-to-integrate-recaptcha-in-prestashop-in-3-step/

Mi versión de Prestashop 1.5.6.2, pero sirve para la 1.6 también.

Saludos

Share this post


Link to post
Share on other sites
  • 0

Para la versión 1.6.1.13 de Prestashop y segun reCAPTCHA de Google

En el archivo /contollers/front/ContactController.php hay que insertar en la linea 44 el siguiente código:

} elseif (!($gcaptcha = (int)(Tools::getValue('g-recaptcha-response')))) {
    $this->errors[] = Tools::displayError('Error en Captcha');
}

El bloque if quedaría de la siguiente manera:

if (!($from = trim(Tools::getValue('from'))) || !Validate::isEmail($from)) {
    $this->errors[] = Tools::displayError('Invalid email address.');
} elseif (!($gcaptcha = (int)(Tools::getValue('g-recaptcha-response')))) {
    $this->errors[] = Tools::displayError('Error en Captcha');
} elseif (!$message) {
    $this->errors[] = Tools::displayError('The message cannot be blank.');
} elseif (!Validate::isCleanHtml($message)) {
    $this->errors[] = Tools::displayError('Invalid message');
} elseif (!($id_contact = (int)Tools::getValue('id_contact')) || !(Validate::isLoadedObject($contact = new Contact($id_contact, $this->context->language->id)))) {
    $this->errors[] = Tools::displayError('Please select a subject from the list provided. ');
} elseif (!empty($file_attachment['name']) && $file_attachment['error'] != 0) {
    $this->errors[] = Tools::displayError('An error occurred during the file-upload process.');
} 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');
} else {

En el archivo contact-form.tpl alojado en la carpeta /themes/tema_que_tienes_activo/, hay que insertar antes de la etiqueta de inicio de form hay que insertar el siguiente script:

<script type="text/javascript">
   var onloadCallback = function() {
     grecaptcha.render('html_element', {
       'sitekey' : 'clave del sitio'
     });
   };
</script>
<!-- La clave del sitio la puedes conseguir en https://www.google.com/recaptcha -->
<!-- La siguiente linea, no incluirla -->
<form action="{$request_uri}" method="post" class="contact-form-box" enctype="multipart/form-data">

Encima del botón submit del formulario insertar:

<div id="html_element"></div>

Despues de la etiqueta de cierre del formulario:

</form> <!-- etiqueta de cierre del formulario -->
<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer>
</script>

Y a funcionar

Share this post


Link to post
Share on other sites
  • 0

Vuelvo a resumir.

Parche seguridad que se aplico a partir de Prestashop 1.6.1.17 (actualización oficial) que nos notifico en el foro el usuario : @FCapdevila  disponible en el repositorio oficial de Prestashop: https://github.com/PrestaShop/PrestaShop/pull/8168/files

A que aplicarlo Sí o Sí independientemente del captcha que vayáis a colocar en la tienda.

Estas modificaciones ya vienen incluidas a partir de Prestashop 1.6.1.17

https://victor-rodenas.com/2018/02/21/se-estan-colando-rusos-o-chinos-por-el-formulario-de-contacto-en-prestashop/

En 21/2/2018 a las 4:09 PM, FCapdevila dijo:

Hola, tenía el mismo problema y he podido solucionarlo aplicando unos cambios en el "ContactController.php" y en el "contact-form.tpl". Son estos cambios:

https://github.com/PrestaShop/PrestaShop/pull/8168/files

Ha sido realizar los cambios y dejar de recibir spam.

 

 

En 21/2/2018 a las 6:02 PM, nadie dijo:

Siguiendo con el tema de la versión de Prestashop de @FCapdevila  he comprobado que las modificaciones se aplicaron a partir de Prestashop 1.6.1.17, por lo tanto quien tenga versiones anteriores de Prestashop dentro de la rama de Prestashop 1.6 es conveniente aplicarlas.

Recordar: https://github.com/PrestaShop/PrestaShop/pull/8168/files

Por ejemplo, haciendo modificaciones sobre Prestashop 1.6.1.16 (por poner un ejemplo)

Fichero: /controllers/front/ContactController.php

Dentro de la función: public function postProcess()

Debajo de:

 


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

Añadir:
 


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


Debajo de:

 


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

Añadir:

 


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

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');

Añadir:

 


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

Debajo de:

 


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

Añadir:

 


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

Cambiar esto:


 $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,
 ));

Fichero:
 


/themes/TuPlantilla/contact-form.tpl

Añadir debajo de:

 


<div class="submit">

Esto:
 


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


 

---

Módulo que integran el Recaptcha de Google: (También comentado en este mismo tema donde nos encontramos)

Reseña del 18 de enero de este año que se hizo para PS 1.7: https://victor-rodenas.com/2018/01/18/captcha-para-prestashop-1-7/ de este módulo: https://github.com/nenes25/eicaptcha/releases que en el repositorio: https://github.com/nenes25/eicaptcha/releases esta disponible para distintas versiones de Prestashop (al menos para PS 1.6 creo recordar que esta disponible)

----

Aporte del usuario @piterd  (Todas las modificaciones "no oficiales" que se hagan a mano deben hacerse en "overrides" no en ficheros originales, a excepción de parches de seguridad oficiales)

hace 9 horas, piterd dijo:

Hola, yo he tenido el mismo problema desde la semana pasada, y lo he solucionado con este link.

https://www.prestashop.com/forums/topic/609900-spammer-bypasses-contact-form-captcha-no-effect/?tab=comments#comment-2691062

Y estos pasos detallados:

http://kris.talkplus.org/2017/how-to-integrate-recaptcha-in-prestashop-in-3-step/

Mi versión de Prestashop 1.5.6.2, pero sirve para la 1.6 también.

Saludos

 

Aporte de @Atlas atlantic (Todas las modificaciones "no oficiales" que se hagan a mano deben hacerse en "overrides" no en ficheros originales, a excepción de parches de seguridad oficiales)

 

hace 7 horas, Atlas atlantic dijo:

Para la versión 1.6.1.13 de Prestashop y segun reCAPTCHA de Google

En el archivo /contollers/front/ContactController.php hay que insertar en la linea 44 el siguiente código:


} elseif (!($gcaptcha = (int)(Tools::getValue('g-recaptcha-response')))) {
    $this->errors[] = Tools::displayError('Error en Captcha');
}

El bloque if quedaría de la siguiente manera:


if (!($from = trim(Tools::getValue('from'))) || !Validate::isEmail($from)) {
    $this->errors[] = Tools::displayError('Invalid email address.');
} elseif (!($gcaptcha = (int)(Tools::getValue('g-recaptcha-response')))) {
    $this->errors[] = Tools::displayError('Error en Captcha');
} elseif (!$message) {
    $this->errors[] = Tools::displayError('The message cannot be blank.');
} elseif (!Validate::isCleanHtml($message)) {
    $this->errors[] = Tools::displayError('Invalid message');
} elseif (!($id_contact = (int)Tools::getValue('id_contact')) || !(Validate::isLoadedObject($contact = new Contact($id_contact, $this->context->language->id)))) {
    $this->errors[] = Tools::displayError('Please select a subject from the list provided. ');
} elseif (!empty($file_attachment['name']) && $file_attachment['error'] != 0) {
    $this->errors[] = Tools::displayError('An error occurred during the file-upload process.');
} 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');
} else {

En el archivo contact-form.tpl alojado en la carpeta /themes/tema_que_tienes_activo/, hay que insertar antes de la etiqueta de inicio de form hay que insertar el siguiente script:


<script type="text/javascript">
   var onloadCallback = function() {
     grecaptcha.render('html_element', {
       'sitekey' : 'clave del sitio'
     });
   };
</script>
<!-- La clave del sitio la puedes conseguir en https://www.google.com/recaptcha -->
<!-- La siguiente linea, no incluirla -->
<form action="{$request_uri}" method="post" class="contact-form-box" enctype="multipart/form-data">

Encima del botón submit del formulario insertar:


<div id="html_element"></div>

Despues de la etiqueta de cierre del formulario:


</form> <!-- etiqueta de cierre del formulario -->
<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer>
</script>

Y a funcionar


Una cosa no quita la "otra".

Es decir, el captcha podéis seguir añadiéndolo sin problemas, pero el parche de seguridad es muy importante aplicarlo. 

 

Edited by nadie
Actualización

Share this post


Link to post
Share on other sites
  • 0

Me decidi por instalar el modulo de reCAPTCHA pero no estoy muy convencido ya que no parecen ser robots

Share this post


Link to post
Share on other sites
  • 0

A mí me da la misma impresión, que no son robots, sino alguien que copia y pega un texto. Y contra eso no sirve el captcha.

Mientras tengo desactivado el formulario no entran spam, pero cuando lo activo empiezan de nuevo a entrar, aunque no inmediato sino que transcurre un tiempo. Lo estoy activando y desactivando aleatoriamente en el transcurso de los días, y ha bajado una barbaridad el número de mensajes.

Igual se cansan así   :-)

Share this post


Link to post
Share on other sites
  • 0

Hola

Otro afectado mas por los p....s rusos. en mi caso afectado con versión 1.5.4.1. llevo dos o tres días recibiendo estos mensajes. al principio solo tenía 2 o 4, pero al día siguiente más de 100.

En las webs con versión  1.6.1.0 y 1.6.0.11 de momento no ha pasado nada, pero miraremos con detenimiento para evitar los problemas.

Voy a ver si consigo pararlo primero en la 1.5.4.1

Share this post


Link to post
Share on other sites
  • 0

Alguien sabe donde poder encontrar el modulo eicaptcha para prestashop 1.5?

Los que encuentro no me deja instalarlos

Share this post


Link to post
Share on other sites
  • 0
4 minutes ago, leonbazar said:

Alguien sabe donde poder encontrar el modulo eicaptcha para prestashop 1.5?

Los que encuentro no me deja instalarlos

Creo que "más arriba" tienes unas modificaciones de código que propusieron unos usuarios para añadir un captcha que es válida para Prestashop 1.5

Edited by Sergio Ruiz

Share this post


Link to post
Share on other sites
  • 0

no es necesario utilizar ningun modulo para ps 1.5, ya tengo puesto el recaptcha de google, ahora veremos si me vuelven a atacar los rusos o no..... 

Share this post


Link to post
Share on other sites
  • 0
hace 19 minutos, Sergio Ruiz dijo:

Creo que "más arriba" tienes unas modificaciones de código que propusieron unos usuarios para añadir un captcha que es válida para Prestashop 1.5

gracias.

 

no había visto tu respuesta, ya lo tengo puesto, era bastante mas facil de lo que pensaba.

Share this post


Link to post
Share on other sites
  • 0

EDITO: poniendo los claudators ("{}") pertinentes ya funciona. Lo dejo por si a alguien más le pasa lo mismo.

 

Otro más que se suma a la guerra fría.

He probado de arreglarlo con el sistema de @FCapdevila pero me encuentro un problema que no entiendo. En mi archivo ContactController.php el bloque del if, es algo raro porque no tiene ningún "{", he añadido todo el código del "else if" pero genera error 500 al entrar en contacto.

Uso la versión 1.6.0.5, alguien sabe como adaptarlo?? Pego el código para que lo veáis, voy a probar de ponerle los { pertinentes a ver si funciona.

		if (Tools::isSubmit('submitMessage'))
		{
			$extension = array('.txt', '.rtf', '.doc', '.docx', '.pdf', '.zip', '.png', '.jpeg', '.gif', '.jpg');
			$fileAttachment = Tools::fileAttachment('fileUpload');
			$message = Tools::getValue('message'); // Html entities is not usefull, iscleanHtml check there is no bad html tags.
			if (!($from = trim(Tools::getValue('from'))) || !Validate::isEmail($from))
				$this->errors[] = Tools::displayError('Invalid email address.');
			else if (!$message)
				$this->errors[] = Tools::displayError('The message cannot be blank.');
			else if (!Validate::isCleanHtml($message))
				$this->errors[] = Tools::displayError('Invalid message');
			else if (!($id_contact = (int)(Tools::getValue('id_contact'))) || !(Validate::isLoadedObject($contact = new Contact($id_contact, $this->context->language->id))))
				$this->errors[] = Tools::displayError('Please select a subject from the list provided. ');
			else if (!empty($fileAttachment['name']) && $fileAttachment['error'] != 0)
				$this->errors[] = Tools::displayError('An error occurred during the file-upload process.');
			else if (!empty($fileAttachment['name']) && !in_array( Tools::strtolower(substr($fileAttachment['name'], -4)), $extension) && !in_array( Tools::strtolower(substr($fileAttachment['name'], -5)), $extension))
				$this->errors[] = Tools::displayError('Bad file extension');
			else
			{
				$customer = $this->context->customer;

 

Edited by Losada
Problema solucionado

Share this post


Link to post
Share on other sites
  • 0

Hola,

a ver: ¿es normal que tanto el campo url y contactKey estén vacíos?

He seguido los pasos de @FCapdevilaque por cierto, muchas gracias ;)

Lo digo porque el formulario se envía y de hecho en el controlador verifica si están vacíos esto cambios pero al inspeccionar el elemento veo que los valores están vacíos...

La verdad que tampoco se si funciona de momento, a ver que pasa...

Gracias ;)

 

Share this post


Link to post
Share on other sites
  • 0
On 19/2/2018 at 3:12 PM, nadie said:

Prueba añadir un captcha por el momento a la tienda: http://victor-rodenas.com/2018/01/18/captcha-para-prestashop-1-7/ a ver si por el momento puede parar el problema de forma puntual.

 

Solucionado con reCaptcha de "San Google", luego de dos semanas de bombardeo ruso e intentos de soluciones complejas a través de filtros de correo saliente...gracias @nadie

Share this post


Link to post
Share on other sites
  • 0
On 23/2/2018 at 12:28 AM, Nashgull said:

Pues yo seré muy torpe pero intento instalar los modulos que poneis y no tengo ni idea, cuando comentais de cambiar códigos ya si que no, Mi versión de prestashop es la 1.6.1.3.  A ver si hubiese algún modulo para instalar y no tener que cambiar código...

Yo sigo recibiendo esos spam.

Saludos.

Hola! 

Después de días recibiendo mensajes de spam ruso lo he solucionado con este módulo:
https://addons.prestashop.com/es/administracion-prestashop-modulo/31068-recaptcha-formulario-de-contacto-proteccion-anti-spam.html

Es una salvación para personas como yo que todo lo relacionado con "tocar código" nos suena a chino -.-
Lo cierto es que no he vuelto a recibir ningún tipo de spam desde que lo tengo instalado, mi versión de Prestashop es la 1.6. 

Espero que os sirva! Saludos!

Edited by Sergio G

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More