Jump to content

Recommended Posts

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
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.

  • Like 1

Share this post


Link to post
Share on other sites

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

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

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

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

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

Share this post


Link to post
Share on other sites
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
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

Si, la v.0.4.11 para Prestashop 1.6 y siguen llegando mensajes... es increible!

Share this post


Link to post
Share on other sites

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.

  • Like 1

Share this post


Link to post
Share on other sites

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
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
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
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

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
  • Like 2
  • Thanks 1

Share this post


Link to post
Share on other sites

En mi caso no soy el webmaster directamente y dependo de otro para hacer los cambios en el codigo

Share this post


Link to post
Share on other sites

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
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

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
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

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

Yo ahora no recibo spam por formulario de contacto, sino por otro módulo ... vaya desastre.

Share this post


Link to post
Share on other sites

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
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

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

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

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

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

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

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
  • Thanks 1

Share this post


Link to post
Share on other sites

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

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

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

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
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

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
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

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

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
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
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
13 minutes ago, Sergio G said:

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. aunque el desarrollador me dijo que también lo tenían disponible para la 1.7

Espero que os sirva! Saludos!

Te registras hoy y dejas 2 enlaces de venta de un módulo por el foro, o suena muy raro, o formas parte de la empresa que vende el módulo o ha sido curiosidad.

El que dice @nadie  https://victor-rodenas.com/2018/01/18/captcha-para-prestashop-1-7/ es "Gratis" y tiene una versión gratuita tambien para PS 1.6 en el repositorio: https://github.com/nenes25/eicaptcha/releases

Además a que estar pendiente de otros aspectos que se han comentado en este tema.

Suerte con la venta del módulo

Edited by Sergio Ruiz

Share this post


Link to post
Share on other sites

Hola. Yo lo he probado todo. tenia el 1.6.1.13

Primero el capcha del google, despues el de rsi. Tambien actualice segun victor rodenas y nadie...y no me funciono....lo ultimo fue actualizarme a 1.6.1.18 y al principio todo fue bien. 2 dias sin spam. 

Esta mañana mas de 80 a traves de mi multitienda. 

Los rusos ahora usan otros emails acabados en live.com. yahoo.com etc. Solo me falta comprar el modulo ultimo e inslalarlo....pero  tengo mis dudas....servira? 

A alguien le pasa lo mismo? Lo ha probado?

Saludos a todos

 

Share this post


Link to post
Share on other sites
En 10/3/2018 a las 8:53 AM, TECNOCHUFA dijo:

Hola. Yo lo he probado todo. tenia el 1.6.1.13

Primero el capcha del google, despues el de rsi. Tambien actualice segun victor rodenas y nadie...y no me funciono....lo ultimo fue actualizarme a 1.6.1.18 y al principio todo fue bien. 2 dias sin spam. 

Esta mañana mas de 80 a traves de mi multitienda. 

Los rusos ahora usan otros emails acabados en live.com. yahoo.com etc. Solo me falta comprar el modulo ultimo e inslalarlo....pero  tengo mis dudas....servira? 

A alguien le pasa lo mismo? Lo ha probado?

Saludos a todos

 

Este fin de ha sido una exageración. Es que a nadie mas le pasa? Saludos 

 

Edited by TECNOCHUFA

Share this post


Link to post
Share on other sites

Buenas: yo tengo el mismo problema con varias tiendas. En una versión 1.6.1.11 he realizado lo que comenta Nadie en https://victor-rodenas.com/2018/02/21/se-estan-colando-rusos-o-chinos-por-el-formulario-de-contacto-en-prestashop/ pero no veo ningún cambio en el formulario. Algo estaré haciendo mal. Seguro. ¿Alguna otra idea?. En otra tienda, borré los ficheros a lo bestia y claro que funciona. Pero esa no es la solución. Probé a configurar el envío de emails con párametros de smtp de nuestro correo y parece que algo hace, ya que recibo unos 5 o 6 emails diarios ("sólo").

 

Ahora que lo veo, una pregunta tonta. ¿Además del cambio de líneas de código en esos dos ficheros hay que instalar el recaptcha de Google?

Edited by alfonsogomez

Share this post


Link to post
Share on other sites
hace 29 minutos, alfonsogomez dijo:

Buenas: yo tengo el mismo problema con varias tiendas. En una versión 1.6.1.11 he realizado lo que comenta Nadie en https://victor-rodenas.com/2018/02/21/se-estan-colando-rusos-o-chinos-por-el-formulario-de-contacto-en-prestashop/ pero no veo ningún cambio en el formulario. Algo estaré haciendo mal. Seguro. ¿Alguna otra idea?. En otra tienda, borré los ficheros a lo bestia y claro que funciona. Pero esa no es la solución. Probé a configurar el envío de emails con párametros de smtp de nuestro correo y parece que algo hace, ya que recibo unos 5 o 6 emails diarios ("sólo").

 

Ahora que lo veo, una pregunta tonta. ¿Además del cambio de líneas de código en esos dos ficheros hay que instalar el recaptcha de Google?

Si, instala también el captcha de Google,  (lo de las dos líneas es solo un parche que viene incorporado de serie a partir de X versión de Prestashop)

Para instalar el captcha lo puedes tanto por código, como instalando módulos gratuitos que se han comentado en este  tema:  https://github.com/nenes25/eicaptcha/releases

Edited by nadie

Share this post


Link to post
Share on other sites
hace 1 hora, nadie dijo:

Si, instala también el captcha de Google,  (lo de las dos líneas es solo un parche que viene incorporado de serie a partir de X versión de Prestashop)

Para instalar el captcha lo puedes tanto por código, como instalando módulos gratuitos que se han comentado en este  tema:  https://github.com/nenes25/eicaptcha/releases

 

Lo estoy intentando todo, incluso me he bajado un modulo gratuito banipfree.zip para bloquear las dos ip's que parecen que son, pero nada, deben de usar un proxy...tengo el 1.6.1.18 y todo sigue igual...no he probado aun lo del smtp, podrias indicarme que debo de cambiar, ya que yo pensaba que usaban el formulario de contacto pero de alguna forma lo puentean. saludos

Share this post


Link to post
Share on other sites

Pues yo he anulado vía PHP la línea de envío de emails en el contactcontroller.... y siguen llegandome!!!! INCREIBLE... No sé como lo hacen...

Tengo un 1.5.4.1... Me han empezado a llegar hace un par de días.

Share this post


Link to post
Share on other sites
15 hours ago, infinityl said:

Pues yo he anulado vía PHP la línea de envío de emails en el contactcontroller.... y siguen llegandome!!!! INCREIBLE... No sé como lo hacen...

Tengo un 1.5.4.1... Me han empezado a llegar hace un par de días.

 

Si eso es increíble, agárrate los machos porque a nosotros nos llegan correos desde una web que ya no existe, está vacía y redireccionada a la nueva. Eso sí, nos llega el "failure notice" y no el mensaje en sí ya que no existe web ya. Aunque no son rusos los mensajes, están en inglés y alguno con extensión icloud.com.

En otra web que tenemos nos ha funcionado lo de @nadie y el recaptcha de google. Ahora voy a tener que hacerlo en la web que tenemos con 1.5 porque han empezado a llegar hoy los rusos.

Edited by Losada

Share this post


Link to post
Share on other sites

Bienvenido al club, He redireccionado todos los formularios de contacto de mi multitienda a un mail que no existe.

Pues aun me ha entrado alguno, como tu dices con el "failure notice" supongo que porque al enviar el email ellos deben de recibir una copia, al no existir su email o tener un atispam (según indican) nos lo devuelve como si nosotros lo hubiéramos enviado.

Si pueden enviarnos emails es porque han copiado los datos de nuestro sistema de prestashop del formulario de contacto de la web (de forma que tienen guardado el email anterior, el correcto) y por eso pueden enviarlos, da igual que pongas un capcha o lo que sea, ya que no les hace falta, el bot solo copia los datos y lo mete en su sistema.

La solución debe estar en poder configurar nosotros el servicio de correo, de forma que podamos verificar el email desde el que se nos envía el formulario de alguna forma, evitando así el spam.

El capcha verifica que sea una persona real, pero si ya han copiado el sistema, les da igual.

Alguien lo está investigando, alguien ha dado con la solución definitiva?

 

hace 5 horas, Losada dijo:

 

Si eso es increíble, agárrate los machos porque a nosotros nos llegan correos desde una web que ya no existe, está vacía y redireccionada a la nueva. Eso sí, nos llega el "failure notice" y no el mensaje en sí ya que no existe web ya. Aunque no son rusos los mensajes, están en inglés y alguno con extensión icloud.com.

En otra web que tenemos nos ha funcionado lo de @nadie y el recaptcha de google. Ahora voy a tener que hacerlo en la web que tenemos con 1.5 porque han empezado a llegar hoy los rusos.

 

Share this post


Link to post
Share on other sites
hace 44 minutos, TECNOCHUFA dijo:

Bienvenido al club, He redireccionado todos los formularios de contacto de mi multitienda a un mail que no existe.

Pues aun me ha entrado alguno, como tu dices con el "failure notice" supongo que porque al enviar el email ellos deben de recibir una copia, al no existir su email o tener un atispam (según indican) nos lo devuelve como si nosotros lo hubiéramos enviado.

Si pueden enviarnos emails es porque han copiado los datos de nuestro sistema de prestashop del formulario de contacto de la web (de forma que tienen guardado el email anterior, el correcto) y por eso pueden enviarlos, da igual que pongas un capcha o lo que sea, ya que no les hace falta, el bot solo copia los datos y lo mete en su sistema.

La solución debe estar en poder configurar nosotros el servicio de correo, de forma que podamos verificar el email desde el que se nos envía el formulario de alguna forma, evitando así el spam.

El capcha verifica que sea una persona real, pero si ya han copiado el sistema, les da igual.

Alguien lo está investigando, alguien ha dado con la solución definitiva?

 

 

Si se han quedado con la dirección del email y los envíos son desde otro sitio externo, la única forma es proteger el spam es en el servidor donde tengas configuradas las cuentas de correo,  en muchas empresas de alojamiento ofrecen una protección especifica.

¿Has contactado con tu empresa de alojamiento y se lo has consultado?

El problema ahora ya no es Prestachop, va más allá..

Edited by nadie

Share this post


Link to post
Share on other sites
En ‎14‎/‎03‎/‎2018 a las 4:03 PM, nadie dijo:

Si se han quedado con la dirección del email y los envíos son desde otro sitio externo, la única forma es proteger el spam es en el servidor donde tengas configuradas las cuentas de correo,  en muchas empresas de alojamiento ofrecen una protección especifica.

¿Has contactado con tu empresa de alojamiento y se lo has consultado?

El problema ahora ya no es Prestachop, va más allá..

YA SE QUE VA MAS ALLA, PERO USA EL SISTEMA DE PRESTASHOP

FIJATE EN LA IMAGEN QUE TE ADJUNTO, AUN ESTANDO REDIRECCIONADO EL EMAIL A UN CORREO QUE NO EXISTE ENTRAN A TRAVES DEL FORMULARIO DE CONTACTO Y APARECEN GRABADOS EN MENSAJES RECIBIDOS

NO ENTRAN A TRAVES DE MI CORREO DIRECTAMENTE, SI NO A TRAVES DE PRESTASHOP, O ESO CREO

QUE HAGO?

image.thumb.png.230a2935d47e4e4b5ab683bbc5cba8f2.png

 

Edited by TECNOCHUFA

Share this post


Link to post
Share on other sites
hace 7 minutos, TECNOCHUFA dijo:

YA SE QUE VA MAS ALLA, PERO USA EL SISTEMA DE PRESTASHOP

FIJATE EN LA IMAGEN QUE TE ADJUNTO, AUN ESTANDO REDIRECCIONADO EL EMAIL A UN CORREO QUE NO EXISTE ENTRAN A TRAVES DEL FORMULARIO DE CONTACTO Y APARECEN GRABADOS EN MENSAJES RECIBIDOS

NO ENTRAN A TRAVES DE MI CORREO DIRECTAMENTE, SI NO A TRAVES DE PRESTASHOP, O ESO CREO

QUE HAGO?

image.thumb.png.230a2935d47e4e4b5ab683bbc5cba8f2.png

 

Creía que te referías a que entraban en el buzon de tu email, no en Prestashop.

Entonces, entiendo que si te están entrando en Prestashop...

Share this post


Link to post
Share on other sites

Podríais facilitarme la dirección completa de donde encontrar el fichero "contact.form"???

Ya he cambiado el contactcontroller pero no encuentro el otro!!!

Share this post


Link to post
Share on other sites
hace 1 hora, Femme Lily dijo:

Podríais facilitarme la dirección completa de donde encontrar el fichero "contact.form"???

Ya he cambiado el contactcontroller pero no encuentro el otro!!!

PS 1.6
/themes/TuPlantilla (plantilla que uses)/contact-form.tpl -> TPL plantilla visualización
Controlador form contacto -> /controllers/front/ContactController.php
 

Edited by nadie

Share this post


Link to post
Share on other sites
1 minute ago, nadie said:

PS 1.6
/themes/TuPlantilla/contact-form.tpl -> TPL plantilla visualización
Controlador form contacto -> /controllers/front/ContactController.php
 

Muchas gracias, ya lo encontré y lo cambié, no sé si ha resultado. Mañana te diré si sigo recibiendo mensajes...

Por otro lado no sabrás como instalar correctamente el programa de afiliados?

Saludos

Share this post


Link to post
Share on other sites

Hola! 

Llevo más de un mes con el problema.

Primero en una tienda con Prestashop 1.7 que lo conseguí parar con módulo gratis de captcha que anda circulando. En esta tienda podía recibir entre 50 y 100 emails diarios. 

Luego he recibido algún que otro mensaje en otra tienda con PrestaShop 1.5.6.0, pero como eran muy pocos no me moleste. 

Y hoy empiezo a recibir mensajes de spam en otra tienda con PrestaShop 1.5.4.0, pero a un nivel nunca visto antes, cada 5 minutos más de 100 mensajes y llevo toda la mañana borrando, más los mensajes devueltos, es insoportable.

He instalado en esta última tienda el módulo gratuito slidecaptcha pero no parece que funcione y todas las modificaciones que veo son para Prestashop a partir de la 1.6.

¿Alguna idea de que se puede hacer en esta versión?

 

Gracias! Un saludo. 

spam.jpg

Edited by borja250

Share this post


Link to post
Share on other sites
hace 52 minutos, nadie dijo:

Información oficial de hoy en el blog de desarrolladores de Prestashop: http://build.prestashop.com/news/fighting-against-spamming/

Resumo la información oficial del enlace.

1 - Para Prestashop 1.7 van a sacar un update del modulo del formulario de contacto incorporando los parches que se aplicaron en Prestashop 1.6, como en la 1.7 el formulario de contacto es un modulo, en principio solo sera necesario actualizar el modulo cuando saque la nueva versión del modulo que sera en breve.

2 - Para Prestashop 1.6, independientemente del parche que se aplico a partir de la 1.6.1.17: https://victor-rodenas.com/2018/02/21/se-estan-colando-rusos-o-chinos-por-el-formulario-de-contacto-en-prestashop/,  van a sacar una actualización en Prestashop 1.6.1.19 donde se evitara que el formulario de contacto envíe el email de confirmación.

3 - Se recomienda desintalar el modulo "Enviar a un amigo" (si lo tienes instalado en la tienda desinstalalo)

4 - Se recomienda tambien instalar un capcha como los que se ha comentado en este post, como por ejemplo el que se comento de hernes: https://github.com/nenes25/eicaptcha/releases del que tengo una reseña de Enero del 2018 https://victor-rodenas.com/2018/01/18/captcha-para-prestashop-1-7/ , que he comentado varias veces en el post actual y en otros post del foro de Prestashop

 

Edited by nadie
  • Like 1

Share this post


Link to post
Share on other sites

Hola, desde hace unos días estoy recibiendo estos ataques de spam rusos. Tengo prestashop 1.6.0.8 por lo que he seguido el hilo de @nadie editando los archivos ContactControler.php y Contact-Form.tpl pero no he podido avanzar más allá. En cuanto he subido los archivos modificados, el formulario ha dejado de funcionar, dando error de que no se puede enviar (adjunto captura), por lo que he tenido que restaurar los archivos pre-edición.

He conseguido a través de mi compañía de hosting que los correos no entren en el buzón, pero la sección de Servicio al Cliente de Prestashop está llenándose de estos correos, entre los de contacto de verdad. A través de geolocalización, he desactivado el acceso desde Rusia y Ucrania, pero siguen conectándose y utilizando el acceso del formulario para enviar spam.

He instalado el módulo Ban IP Pro (por el cual he tenido que pagar) y casando la lista de visitantes activos con un verificador de CIPB y la hora de los mensajes, en media hora he bloqueado 22 IPs, pero vuelven a escribir desde una nueva a los minutos.

A través del backoffice de Zopim o en el mismo Google Analytics no aparecen estos visitantes en línea pero los mensajes siguen cargándose desde el formulario de Prestashop.

Adjunto los archivos con las modificaciones del parche de seguridad, están copiados y pegados tal cual desde los enlaces aportados por @nadie pero no entiendo porqué al subirlos no funciona el formulario, por lo que no puedo activar el parche de seguridad y sigo expuesta a estos ataques, que viendo las experiencias, temo que van a ir a más.

Realmente, necesito ayuda. Tengo capacidad para editar el código, pero no soy desarrolladora y no tengo ni idea de cuál puede ser el error en los archivos  ContactControler.php y Contact-Form.tpl "parcheados".

:(

ContactController.php

error formulario.PNG

contact-form.tpl

Edited by hmatz

Share this post


Link to post
Share on other sites

a mi también me paso con los queridos rusos

no compré el modulo que dice linea grafica pero compre otro similar y se soluciono el problema

Share this post


Link to post
Share on other sites
54 minutes ago, ATB said:

a mi también me paso con los queridos rusos

no compré el modulo que dice linea grafica pero compre otro similar y se soluciono el problema

me cuelo

¿El módulo gratuito de hernes comentado en el foro y en este tema que te añade un recaptcha no te valia?

Share this post


Link to post
Share on other sites
On 20/3/2018 at 10:21 PM, hmatz said:

Hola, desde hace unos días estoy recibiendo estos ataques de spam rusos. Tengo prestashop 1.6.0.8 por lo que he seguido el hilo de @nadie editando los archivos ContactControler.php y Contact-Form.tpl pero no he podido avanzar más allá. En cuanto he subido los archivos modificados, el formulario ha dejado de funcionar, dando error de que no se puede enviar (adjunto captura), por lo que he tenido que restaurar los archivos pre-edición.

He conseguido a través de mi compañía de hosting que los correos no entren en el buzón, pero la sección de Servicio al Cliente de Prestashop está llenándose de estos correos, entre los de contacto de verdad. A través de geolocalización, he desactivado el acceso desde Rusia y Ucrania, pero siguen conectándose y utilizando el acceso del formulario para enviar spam.

He instalado el módulo Ban IP Pro (por el cual he tenido que pagar) y casando la lista de visitantes activos con un verificador de CIPB y la hora de los mensajes, en media hora he bloqueado 22 IPs, pero vuelven a escribir desde una nueva a los minutos.

A través del backoffice de Zopim o en el mismo Google Analytics no aparecen estos visitantes en línea pero los mensajes siguen cargándose desde el formulario de Prestashop.

Adjunto los archivos con las modificaciones del parche de seguridad, están copiados y pegados tal cual desde los enlaces aportados por @nadie pero no entiendo porqué al subirlos no funciona el formulario, por lo que no puedo activar el parche de seguridad y sigo expuesta a estos ataques, que viendo las experiencias, temo que van a ir a más.

Realmente, necesito ayuda. Tengo capacidad para editar el código, pero no soy desarrolladora y no tengo ni idea de cuál puede ser el error en los archivos  ContactControler.php y Contact-Form.tpl "parcheados".

:(

ContactController.php

error formulario.PNG

contact-form.tpl

Yo lo he instalado en una tienda 1.7 y el módulo (La versión v2.0.4) te crea el "contactform.php" en la carpeta override/modules/contactform . El problema es que el módulo, supongo que por un error, intenta usar el archivo "contacform.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. 

Edited by Webmaster2Xeral
Error en nombre de un archivo

Share this post


Link to post
Share on other sites
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
4 minutes ago, Sergio Ruiz said:

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.

Cierto, hablaba de memoria, en la 1.7 el archivo es "contactform.php" . :P Gracias. Edito arriba el post anterior.

Share this post


Link to post
Share on other sites

NECESITO SOLUCIONARLO YA...QUE MODULO DE PAGO GARANTIZA LA SOLUCION AL PROBLEMA. AYER EL SERVIDOR ME BLOQUEO EL CORREO, EL CUAL AHORA ENCIMA ME TOCARA QUITAR DE LAS BLACK LIST....LA COSA SE VA COMPLICANDO,  

@NADIE HAS DADO CON LA SOLUCION? AUNQUE SEA PAGANDO. GRACIAS

Share this post


Link to post
Share on other sites

Buenos días, 

Yo lo solucione aplicando el parche de seguridad que se comenta en los ficheros que corresponden al formulario y el reCaptcha de Google en un prestashop 1.6.1.0. Por el momento llevamos desde principio de mes sin recibir más correos spam.

 

Un saludo.

Share this post


Link to post
Share on other sites
21 minutes ago, Joselgrg said:

Buenos días, 

Yo lo solucione aplicando el parche de seguridad que se comenta en los ficheros que corresponden al formulario y el reCaptcha de Google en un prestashop 1.6.1.0. Por el momento llevamos desde principio de mes sin recibir más correos spam.

 

Un saludo.

 

Nosotros también lo solucionamos con el reCaptcha de google y el parche de @nadie, hace ya como un mes y no hemos vuelto a recibir nada en ninguna de las dos tiendas (1.5 y 1.6).

Es posible que os hayáis saltado algún paso? Yo os recomendaría volver a poner los archivos iniciales y empezar de nuevo, por si os habéis dejado alguna cosa.

Share this post


Link to post
Share on other sites
hace 5 horas, Losada dijo:

 

Nosotros también lo solucionamos con el reCaptcha de google y el parche de @nadie, hace ya como un mes y no hemos vuelto a recibir nada en ninguna de las dos tiendas (1.5 y 1.6).

Es posible que os hayáis saltado algún paso? Yo os recomendaría volver a poner los archivos iniciales y empezar de nuevo, por si os habéis dejado alguna cosa.

LA CUESTION ES QUE NOSOTROS LO HICIMOS PERO NO NOS FUNCIONO....POR ALGUN MOTIVO, PUEDE SER QUE NOS DEJARAMOS ALGUN PASO TAL Y COMO COMENTAIS...POR ESO MISMO DECIDIMOS ACTUALIZAR A 1.6.18 QUE SE SUPONE QUE YA ESTABA INCORPORADO EL PARCHE...Y CON UN SLIDECAPCHA...PERO NADA.

PEOR AUN..EN UNA DE NUESTRAS WEBS (ES UNA MULTITIENDA) NO SE PUEDE ACCEDER AL FORMULARIO DE CONTACTO...POR ALGUN ERROR QUE DEBO SOLUCIONAR AUN...PUES TAMBIEN ENTRAN....INCREIBLE

NO SE QUE HACER, VOY A PROBAR A CAMBIAR EL SLIDE POR EL DE GOOGLE...OTRA VEZ...A VER SI ACIERTO

AHH. OTRA COSA QUE SE ME PASABA.

EN EL FORMULARIO DE CONTACTO CAMBIAMOS EL EMAIL PONIENDO UNO QUE NO EXISTIA...Y SEGUIAN LLEGANDO AL CORREO ELECTRONICO A TRAVES DEL FORMULARIO...EL NO VA MAS. (DEBE SER QUE ME TIENEN MAS MANIA A MI)

HEMOS INTENTADO BLOQUEAR IPS...Y NADA

HEMOS REVISADO EL SISTEMA PARA VER SI HAY ALGUN ARCHIVO MALICIOSO Y NADA.

DEBE HABER ALGUNA FORMA PARA ELIMINARLOS O NO DEJARLOS QUE USEN EL SISTEMA A TRAVES DEL SMTP DEL CORREO YA QUE ESTAN USANDO MI SERVIDOR PARA ENVIARME SPAM A MI Y A DIOS SABE QUIEN....

DE MOMENTO SOLO SE ME OCURRE DESACTIVAR EL FORMULARIO DE CONTACTO DE TODAS LAS WEBS...NO SE...

VOY A VER OS MANTENDRE INFORMADOS.

SALUDOS

 

Edited by TECNOCHUFA

Share this post


Link to post
Share on other sites
hace 2 horas, TECNOCHUFA dijo:

LA CUESTION ES QUE NOSOTROS LO HICIMOS PERO NO NOS FUNCIONO....POR ALGUN MOTIVO, PUEDE SER QUE NOS DEJARAMOS ALGUN PASO TAL Y COMO COMENTAIS...POR ESO MISMO DECIDIMOS ACTUALIZAR A 1.6.18 QUE SE SUPONE QUE YA ESTABA INCORPORADO EL PARCHE...Y CON UN SLIDECAPCHA...PERO NADA.

PEOR AUN..EN UNA DE NUESTRAS WEBS (ES UNA MULTITIENDA) NO SE PUEDE ACCEDER AL FORMULARIO DE CONTACTO...POR ALGUN ERROR QUE DEBO SOLUCIONAR AUN...PUES TAMBIEN ENTRAN....INCREIBLE

NO SE QUE HACER, VOY A PROBAR A CAMBIAR EL SLIDE POR EL DE GOOGLE...OTRA VEZ...A VER SI ACIERTO

AHH. OTRA COSA QUE SE ME PASABA.

EN EL FORMULARIO DE CONTACTO CAMBIAMOS EL EMAIL PONIENDO UNO QUE NO EXISTIA...Y SEGUIAN LLEGANDO AL CORREO ELECTRONICO A TRAVES DEL FORMULARIO...EL NO VA MAS. (DEBE SER QUE ME TIENEN MAS MANIA A MI)

HEMOS INTENTADO BLOQUEAR IPS...Y NADA

HEMOS REVISADO EL SISTEMA PARA VER SI HAY ALGUN ARCHIVO MALICIOSO Y NADA.

DEBE HABER ALGUNA FORMA PARA ELIMINARLOS O NO DEJARLOS QUE USEN EL SISTEMA A TRAVES DEL SMTP DEL CORREO YA QUE ESTAN USANDO MI SERVIDOR PARA ENVIARME SPAM A MI Y A DIOS SABE QUIEN....

DE MOMENTO SOLO SE ME OCURRE DESACTIVAR EL FORMULARIO DE CONTACTO DE TODAS LAS WEBS...NO SE...

VOY A VER OS MANTENDRE INFORMADOS.

SALUDOS

 

A nosotros nos seguía entrando spam ruso aún despues de poner el parche de seguridad, quitar el módulo "Enviar a un amigo" y el captcha que ya lo teníamos.

Al final me decidí por añadir un bloqueo de las extensiones de los email identificados como spam y al principio cambiaban de extensión cada dos/tres días y entraban de nuevo, pero aprovechando el último cambio de extensión cambié tambien el mensaje de error y ya llevo 6 días sin spam. No se si tendrá algo que ver o es que se han cansado de mi.

Si quereis probar esto es lo que puse en el override del contactcontroller, lo tenemos en ps 1.6.0.6 y ps 1.6.0.11:

if (Tools::isSubmit('submitMessage'))
		{
			$mail_spam = array('mail.ru', 'yahoo.com', 'yandex.ru', 'bk.ru', 'inbox.ru'); //****
			$mail_from = Tools::getValue('from'); //****
			$spam = explode('@', $mail_from, 2); //****
			$saveContactKey = $this->context->cookie->contactFormKey;
			$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.
			$url = Tools::getValue('url'); 
			if (!($from = trim(Tools::getValue('from'))) || !Validate::isEmail($from))
				$this->errors[] = Tools::displayError('Invalid email address.');
			else if (in_array($spam[1], $mail_spam)!==false) //****
				$this->errors[] = Tools::displayError('Su email '.'('. $mail_from .')'.' ha sido bloqueado, llámenos.'); //****
			elseif (!$message)
				$this->errors[] = Tools::displayError('The message cannot be blank.');

Las líneas marcadas con //**** son las añadidas y en el array hay que añadir sobre la marcha tantas extensiones de sapm como vayan saliendo.

Share this post


Link to post
Share on other sites
hace 16 horas, Eusebio100 dijo:

A nosotros nos seguía entrando spam ruso aún despues de poner el parche de seguridad, quitar el módulo "Enviar a un amigo" y el captcha que ya lo teníamos.

Al final me decidí por añadir un bloqueo de las extensiones de los email identificados como spam y al principio cambiaban de extensión cada dos/tres días y entraban de nuevo, pero aprovechando el último cambio de extensión cambié tambien el mensaje de error y ya llevo 6 días sin spam. No se si tendrá algo que ver o es que se han cansado de mi.

Si quereis probar esto es lo que puse en el override del contactcontroller, lo tenemos en ps 1.6.0.6 y ps 1.6.0.11:


if (Tools::isSubmit('submitMessage'))
		{
			$mail_spam = array('mail.ru', 'yahoo.com', 'yandex.ru', 'bk.ru', 'inbox.ru'); //****
			$mail_from = Tools::getValue('from'); //****
			$spam = explode('@', $mail_from, 2); //****
			$saveContactKey = $this->context->cookie->contactFormKey;
			$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.
			$url = Tools::getValue('url'); 
			if (!($from = trim(Tools::getValue('from'))) || !Validate::isEmail($from))
				$this->errors[] = Tools::displayError('Invalid email address.');
			else if (in_array($spam[1], $mail_spam)!==false) //****
				$this->errors[] = Tools::displayError('Su email '.'('. $mail_from .')'.' ha sido bloqueado, llámenos.'); //****
			elseif (!$message)
				$this->errors[] = Tools::displayError('The message cannot be blank.');

Las líneas marcadas con //**** son las añadidas y en el array hay que añadir sobre la marcha tantas extensiones de sapm como vayan saliendo.

LE HE MODIFICADO PERO ME DA ERROR 500, Algo no hago bien...,

os adjunto la modificación hecha, a ver si alguien ve el error, por favor. gracias

public function postProcess()
    {
        if (Tools::isSubmit('submitMessage')) 
	{
	    $mail_spam = array('mail.ru', 'yahoo.com', 'yandex.ru', 'bk.ru', 'inbox.ru'); //****
	    $mail_from = Tools::getValue('from'); //****
	    $spam = explode('@', $mail_from, 2); //****
            $saveContactKey = $this->context->cookie->contactFormKey;
            $extension = array('.txt', '.rtf', '.doc', '.docx', '.pdf', '.zip', '.png', '.jpeg', '.gif', '.jpg');
            $file_attachment = Tools::fileAttachment('fileUpload');
            $message = Tools::getValue('message'); // Html entities is not usefull, iscleanHtml check there is no bad html tags.
            $url = Tools::getValue('url');
            if (!($from = trim(Tools::getValue('from'))) || !Validate::isEmail($from)) {
                $this->errors[] = Tools::displayError('Invalid email address.');
	    } else if (in_array($spam[1], $mail_spam)!==false) //****
		$this->errors[] = Tools::displayError('Su email '.'('. $mail_from .')'.' ha sido bloqueado, llámenos.'); //****
            } 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');
            } elseif ($url === false || !empty($url) || $saveContactKey != (Tools::getValue('contactKey'))) {
                $this->errors[] = Tools::displayError('An error occurred while sending the message.');
            } else {
                $customer = $this->context->customer;
                if (!$customer->id) {
                    $customer->getByEmail($from);
                }

 

gracias

Edited by TECNOCHUFA

Share this post


Link to post
Share on other sites
hace 44 minutos, TECNOCHUFA dijo:

LE HE MODIFICADO PERO ME DA ERROR 500, Algo no hago bien...,

os adjunto la modificación hecha, a ver si alguien ve el error, por favor. gracias


public function postProcess()
    {
        if (Tools::isSubmit('submitMessage')) 
	{
	    $mail_spam = array('mail.ru', 'yahoo.com', 'yandex.ru', 'bk.ru', 'inbox.ru'); //****
	    $mail_from = Tools::getValue('from'); //****
	    $spam = explode('@', $mail_from, 2); //****
            $saveContactKey = $this->context->cookie->contactFormKey;
            $extension = array('.txt', '.rtf', '.doc', '.docx', '.pdf', '.zip', '.png', '.jpeg', '.gif', '.jpg');
            $file_attachment = Tools::fileAttachment('fileUpload');
            $message = Tools::getValue('message'); // Html entities is not usefull, iscleanHtml check there is no bad html tags.
            $url = Tools::getValue('url');
            if (!($from = trim(Tools::getValue('from'))) || !Validate::isEmail($from)) {
                $this->errors[] = Tools::displayError('Invalid email address.');
	    } else if (in_array($spam[1], $mail_spam)!==false) //****
		$this->errors[] = Tools::displayError('Su email '.'('. $mail_from .')'.' ha sido bloqueado, llámenos.'); //****
            } 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');
            } elseif ($url === false || !empty($url) || $saveContactKey != (Tools::getValue('contactKey'))) {
                $this->errors[] = Tools::displayError('An error occurred while sending the message.');
            } else {
                $customer = $this->context->customer;
                if (!$customer->id) {
                    $customer->getByEmail($from);
                }

 

gracias

ERAN LOS CORCHETES {}..VAMOS A VER QUE ES LO QUE PASA...

Share this post


Link to post
Share on other sites
hace 21 horas, Eusebio100 dijo:

A nosotros nos seguía entrando spam ruso aún despues de poner el parche de seguridad, quitar el módulo "Enviar a un amigo" y el captcha que ya lo teníamos.

Al final me decidí por añadir un bloqueo de las extensiones de los email identificados como spam y al principio cambiaban de extensión cada dos/tres días y entraban de nuevo, pero aprovechando el último cambio de extensión cambié tambien el mensaje de error y ya llevo 6 días sin spam. No se si tendrá algo que ver o es que se han cansado de mi.

Si quereis probar esto es lo que puse en el override del contactcontroller, lo tenemos en ps 1.6.0.6 y ps 1.6.0.11:


if (Tools::isSubmit('submitMessage'))
		{
			$mail_spam = array('mail.ru', 'yahoo.com', 'yandex.ru', 'bk.ru', 'inbox.ru'); //****
			$mail_from = Tools::getValue('from'); //****
			$spam = explode('@', $mail_from, 2); //****
			$saveContactKey = $this->context->cookie->contactFormKey;
			$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.
			$url = Tools::getValue('url'); 
			if (!($from = trim(Tools::getValue('from'))) || !Validate::isEmail($from))
				$this->errors[] = Tools::displayError('Invalid email address.');
			else if (in_array($spam[1], $mail_spam)!==false) //****
				$this->errors[] = Tools::displayError('Su email '.'('. $mail_from .')'.' ha sido bloqueado, llámenos.'); //****
			elseif (!$message)
				$this->errors[] = Tools::displayError('The message cannot be blank.');

Las líneas marcadas con //**** son las añadidas y en el array hay que añadir sobre la marcha tantas extensiones de sapm como vayan saliendo.

HE HECHO LAS MODIFICACIONES OPORTUNAS A VER QUE TAL VA.

ACABA DE ENTRARME OTRO CON LIST.RU Y LO HE AÑADIDO A LA LINEA CORRESPONDIENTE.

EXISTE ALGUNA FORMA DE COMPROBAR QUE FUNCIONA? YA QUE ME HE ENVIADO UN MAIL INVENTADO CON UNA DE LAS TERMINACIONES ,PERO CREO QUE DEBERIA NO GRABARSE SIQUIERA EN MAILS RECIBIDOS, NO ES ASI, DESECHANDOLO Y SALIR ALGUN MENSAJE, CORRECTO?

GRACIAS POR VUESTRA AYUDA

 

Share this post


Link to post
Share on other sites
hace 5 horas, TECNOCHUFA dijo:

HE HECHO LAS MODIFICACIONES OPORTUNAS A VER QUE TAL VA.

ACABA DE ENTRARME OTRO CON LIST.RU Y LO HE AÑADIDO A LA LINEA CORRESPONDIENTE.

EXISTE ALGUNA FORMA DE COMPROBAR QUE FUNCIONA? YA QUE ME HE ENVIADO UN MAIL INVENTADO CON UNA DE LAS TERMINACIONES ,PERO CREO QUE DEBERIA NO GRABARSE SIQUIERA EN MAILS RECIBIDOS, NO ES ASI, DESECHANDOLO Y SALIR ALGUN MENSAJE, CORRECTO?

GRACIAS POR VUESTRA AYUDA

 

La forma de probarlo es intentar enviarte un mensaje con alguna de las extensiones de la lista, si funciona no debería enviarse el mensaje. Adjunto muestra con la extensión list.ru que acabo de añadirla, pero a mi siguen sin entrarme y llevo una semana. Si no te sale el error como en la imagen adjunta es por que algo no tienes bien.

Edito: recuerda que debes limpiar la cache para que los cambios tengan efecto.

Captura-error-email.JPG

Edited by Eusebio100

Share this post


Link to post
Share on other sites
22 hours ago, TECNOCHUFA said:

ERAN LOS CORCHETES {}..VAMOS A VER QUE ES LO QUE PASA...

 

Eso te iba a decir, que a simple vista te faltaba una opertura { de uno de los if else

Share this post


Link to post
Share on other sites

HOLA DE NUEVO,

PERDONAR MI TORPEZA, ESTOY PROBANDO DISTINTAS FORMULAS PARA ELIMINAR EL ---- SPAM RUSO

HE ENCONTRADO UN SEÑOR DE DINAMARCA QUE DICE QUE LO HA SOLUCIONADO Y HA CREADO UN MODULO GRATUITO

ADJUNTO ENLACE :

https://www.prestashop.com/forums/topic/663210-modul-spam-i-kontaktform/?tab=comments#comment-2712114

TAMBIEN ADJUNTO ARCHIVO VALIDO PARA 1.5, 1.6 Y 1.7 o al menos eso dice.

EN EL ENLACE HAY OTRO MODULO ZIP.

YO NO LO HE PODIDO INSTALAR AUN Y PROBAR YA QUE ME DICE ALGO DE QUE :

El(los) siguiente(s) módulo(s) no pudieron instalarse correctamente:

  • contactformnospam :
        No se puede instalar la sobrecarga: El método postProcess en el grupo ContactController ya ha sido sobreescrito.