En estas entradas trato de solucionar problemas comunes que aparecen en Prestashop

Warehouse Hack Prestashop

El famoso tema Warehouse ha tenido un problema de vulnerabilidad siendo posible hackear tu tienda basada en PrestaShop.

¿Cómo saber si han hackeado mi tienda?

Si quieres saber si tu tienda tiene esta vulnerabilidad tienes que probar introducir la siguiente URL en un navegador, sustituyendo tudominio.com por el que corresponda:

http://tudominio.com/modules/simpleslideshow/uploadimage.php

Si en el navegador no ves el texto:  «User is not logged in» o «no file» tienes que aplicar la solución que proponen.

Si no estás hackeado:

 Los desarrolladores lo detectaron el día 15 de Junio del 2016 e inmediatamente sacaron un parche de seguridad.  Los módulos afectados son los siguientes:

  • modules/simpleslideshow/slides
  • modules/homepageadvertise/slides
  • modules/homepageadvertis2/slides
  • modules/productpageadverts/slides
  • modules/columnadverts/slides

 

Puedes descargarlo desde aquí: https://drive.google.com/file/d/0B6yfaCTJqFdeYldDNmg0d0Iwd1U/

Es un fichero zip, dentro encontrarás los archivos para PS 1.5 y para 1.6, así como un archivo PDF que explican como hay que instarlos.

El proceso es sencillo, una descargado tendremos una carpeta PrestaShop 1.5 y otra PrestaShop 1.6, deberemos copiar el contenido de cada una de ellas en el directorio modules de nuestra tienda sobreescribiendo los archivos que había anteriormente.

Como siempre os recomiendo hacer una copia de seguridad antes de realizar ningún cambio en nuestra tienda en producción.

Hay casos en los que no se usen todos los módulos del problemáticos, entonces copiaremos sólo los que tengamos instalados.

Esto es exclusivamente para aquellas tiendas online que no hayan actualizado el tema.  A partir de la versión 3.7.7 de Warehouse esta solución ya estaba aplicada.

Si ya estás hackeado:

Tendrás que reponer una copia de seguridad del día antes que te hayan hackeado, cambiar todas las contraseñas y usuarios, FTP, administradores de la tienda, etc… y proceder a aplicar lo anterior.  Además de revisar todos los archivos de PrestaShop y del tema por si hay expresiones tipo «base64», «eval», etc…

Es tedioso pero es la única forma de asegurarse que no queda nada oculto.

Os dejo un vídeo que muestran como pueden subir archivos a tiendas con este problema (el vídeo ya no está disponible en Youtube y no he encontrado una alternativa)

 

 

El verano ha dado mucho de sí.

Si acabas de aterrizar de las vacaciones y no has revisado tu tienda en los últimos 15 días tienes razones para perder un rato en ponerte al día.

Menos mal que estoy yo por aquí y te voy a facilitar la digestión de las dos noticias más importantes en el mundo prestashop.

Problema de seguridad en Prestashop

La primera es que se ha descubierto un grave problema de seguridad en la generación de las contraseñas para acceder a nuestras tiendas.

Prestashop ha actuado tan rápidamente como se han enterado, gracias al usuario Vincent Herbulot (@us3r777) y han creado varios módulos para que podamos solucionarlo.

Afecta a todas las versiones anteriores a la 1.6.1.0.  Los módulos se pueden descargar desde esta página desde donde explican detalladamente y para cada caso como proceder para solucionar este problema de seguridad de Prestashop.  

Es muy grave y es obligatorio actualizar nuestra tienda al última versión disponible de ella.  Es decir, si usas la 1.4  tendrás que subirla hasta 1.4.11.0, si es la 1.5 a 1.5.6.2 y si tienes la 1.6.0 pues pasate a la 1.6.1.1 que ya está disponible como te contaré más adelante.

Si intentas hacerlo con cualquier versión que no sea la más actualizada no funcionará y es posible que se cargue la tienda.

Ten mucho cuidado si has modificado los archivos del núcleo, si usas el tema por defecto, etc…  SIEMPRE, SIEMPRE, SIEMPRE haz copias de seguridad antes de pulsar un botón o tecla.

Por favor, antes de nada lee el artículo oficial de PRESTASHOP para que no te quede ningún tipo de duda.

Nueva versión de Prestashop 1.6.1.1

Como viene siendo habitual, al poco tiempo de salir una revisión tipo 1.x.0 sale la que arregla los errores que los usuarios y el propio equipo detecta.  Entonces se lanza la revisión que realmente interesa que es la 1.x.0.1.

Ya tenemos la 1.6.1.1 que soluciona, como ellos dicen, errores tontos.  Pars arreglarlos han intervenido 32 personas entre gente de la comunidad como integrantes del equipo.

Algunas de las mejoras son las siguientes:

  • TinyMCE acepta todos los elementos HTML
  • Se ha mejorado la importación
  • La ecotasa se calcula mejor
  • El menú esta disponible en idiomas como:  Holandés, checo,  húngaro, indonesio y serbio
  • Se ha corregido la traducción al castellano sobre todo en el menú
  • La bandera sueca es la correcta
  • Han solucionado el problema de la validación del código postal canadiense
  • Han solventado problemas específicos de las multi tiendas
  • EL generador del Robots.txt ahora permite indexar los Css y Js de los módulos
  • YandexBot se ha añadido.
  • …y alguna cosilla más.

Si quieres conocer todos los cambios, eso si en inglés, esta disponible en el changelog 1.6.1.1.

Si tienes tu tienda con la 1.6.X puedes actualizarlo como siempre.  Si no sabes como puedes ver mi vídeo de como actualizar a Prestashop 1.6.1.x, si tienes otra versión tendrás que tener más cuidado.

Paypal

 

Desde que se conoció POODLE, que hace que el protocolo SSL 3.0 sea vulnerable el equipo de Paypal y  Prestashop ha esta trabajando para deshabilitar este en el módulo de Paypal, aquí os explicamos como instalarlo para que antes del 3 de Diciembre del 2014 no tengas ningún problema en tu tienda.  Si no haces esta actualización es posible que tengas problemas con los pagos a partir del día 3 de Diciembre.

Usuarios de las versiones 1.5 y 1.6 de Prestashop

1- Hay que ir a la zona de módulos

2- Hacer click en el botón actualizar del módulo de Paypal

Si el botón no aparece seguir los pasos para los usuarios de la 1.4
La versión actualizada es la 3.8, si no es la que aparece sigue los pasos de abajo.

Usuarios de la versión 1.4

1- Ve a la zona de Addons de Prestashop y baja la última versión del módulo de Paypal, la 3.8

2- Hay que hacer la actualización de forma manual. Ve a la «módulos» en el backoffice

3- Haz click en «Subir módulo de mi ordenador»

4- Selecciona el archivo Zip que has descargado

5- Haz click en «Sube este módulo»

Al terminar la actualización tendrás la versión 3.8

En pocos minutos debes tener tu módulo actualizado y funcionando como hasta ese momento, revisa las credenciales y que se aparezca como medio de pago antes de dar cualquier otro paso, en estas web, en la de Paypal y en los foros oficiales de Prestashop podrás encontrar ayuda si la necesitas.

Es importante tener nuestra tienda y los módulos que tengamos instalados siempre con la última versión estable conocida para evitar que pueda existir un resquicio por donde un hacker pueda colarse.  Esto debe aplicarse con más interés en aquellos en el que el dinero es protagonista.

Si tienes varios medios de pago, no es mala idea, para estas fechas que se aproximan que revises si están al día y no hay por parte de los desarrolladores alguna nota o actualización de seguridad.

 

PayPal response:10729L_SHORTMESSAGE0 -> Shipping Address State EmptyL_LONGMESSAGE0 -> The field Shipping Address State is requiredL_SEVERITYCODE0 -> Error

Este error trae de cabeza a muchos administradores y dueños de tiendas basadas en Prestashop y que usan Paypal como medio de pago.

A un cliente, de un día para otro empezaron a ver como los pagos en sus pedidos eran rechazados por paypal en el momento de terminar y volver a la tienda, lo peor es que si el cliente no estaba atento creía que su compra se había realizado correctamente.

Después de mucho investigar en los foros oficiales de presta, probar mil soluciones propuestas, por ejemplo, cambiar la forma de pago en la configuración del módulo de Paypal, quitando el Pago exprés.7

Cambiar Pago Express Paypal y Prestashop

Cambiando la última versión de Paypal y añadiendo una antigua, etc….

Y ninguna funciona.

Entonces me puse a pensar despacio, según Paypal el error ocurre porque la provincia (state) no se propagaba bien de Prestashop a la plataforma de pago.   Revise los usuarios y resulta que a veces ocurría con antiguos y otros nuevos, no tenía sentido porque es un campo obligatorio al registrar una dirección.

Este fallo se produce tanto en clientes antiguos, como nuevos, con pagos con tarjeta en Paypal o con aquellos que tienen una cuenta allí, realmente no daba con la excepción que hacía que algunos pudieran finalizar la compra y otros no.

Así que tome el carril de en medio y modifiqué el archivo order-address.tpl del tema de mi cliente.

Añadí el siguiente código (en rojo) que oculta el botón Siguiente, si detecta que la dirección tienen la provincia (state) con valor 0.

{foreach from=$addresses key=k item=address}
      {if (($address.id_state|intval) != 0)}

        <input type=»submit» name=»processAddress» value=»{l s=’Next’} &raquo;» class=»exclusive» />

     {/if}
{/foreach}

Si queréis avisar al cliente como seguir, debéis añadir debajo de <p class=»address_add submit»>:

{foreach from=$addresses key=k item=address}

     {if (($address.id_state|intval) == 0)}

            <p class=»address_add submit»> {l s=’LAS DIRECCIONES NO TIENEN PROVINCIA SELECCIONADA,SI CONTINUA NO                    PODRÁ FINALIZAR LA COMPRA.’}</p>
           <p class=»address_add submit»> {l s=’TAMPOCO OLVIDE SELECCIONAR LA PROVINCIA EN PAYPAL’}</p>
    {/if}
{/foreach}

 

Desde que lo subimos a producción no ha vuelto a dar un fallo.

Espero que esto os ayude y no paréis de recibir pedidos.

Out of memory, es un error que suele pasar en Prestashop.  En el como actualizar a Prestashop 1.6, el usuario Raúl me preguntaba si sabía como solucionar un error que le salía cuando intentaba entrar a los módulos en su zona de administración.

Este error es:

PrestaShop] Fatal error in module smarty_internal_templatebase:
Out of memory (allocated 29884416) (tried to allocate 2768 bytes)»
Este error Out of Memory suele aparecer porque el prestashop requiere aumentar el limite de memoria máxima que php puede usar.   El primer paso es revisar cuanta memoria tenemos actualmente.   Esto lo podemos ver revisando la configuración de PHP en nuestro hospedaje.
Creamos un archivo que llamaremos info.php,  lo podemos hacer con cualquier editor de texto, dentro del mismo escribimos, copiamos o lo que se te antoje lo siguiente:

<?php

phpinfo();

?>

El archivo lo grabamos como info.php y lo subimos al raíz de nuestro servidor, ahora podremos ir a http://tudominio.com/info.php y buscar el valor memory_limit.

En mi caso el limite está en 128 Mb, como podéis ver:

Error de Memory Limit

Normalmente los hospedajes compartidos los tienen entre 32 y 64, así que os voy a explicar como subirlo, sino podéis hacerlo de esta manera, deberéis solicitarlo.

Haz siempre una copia de cualquier archivo que vayas a modificar, por si nos equivocamos.

Opción 1

Podéis modificar o crear el archivo php.ini que tengamos en nuestro directorio raíz.

Buscamos la directiva memory_limit = aloquesea, borramos aloquesea y escribimos 128M;

Grabamos y miramos el valor en nuestro info.php.

Opción 2

El archivo que vamos a modificar ahora es el .htaccess, seguramente este oculto y en tu programa de gestor de FTP tendrás que decirle que muestre archivos ocultos.

Añadimos la linea:

php_value memory_limit 128M

Guardamos y volvemos a revisar el valor del memory_limit en el info.php

Opción 3

En el directorio config de nuestra tienda, localizamos config.inc.php y añadimos al final, sin tocar nada más

ini_set(‘memory_limit’,‘128M’);

Guardamos y…..  por tercera vez revisamos si el valor ha cambiado.

Si una vez habéis probado todas los opciones y seguís teniendo el error, es que tenemos instalados demasiados módulos.

Debéis  ir a /modules e ir  renombrando módulosque estés seguro que no uses,  como módulo_old.  Hacedlo de uno en uno y vais probando hasta encontrar el que hace que no funcione correctamente  vuestra tienda.

Espero que os ayude a solucionar este incomodo problema.