Habitualmente las contraseñas en los proyectos web son guardadas en la base de datos de forma encriptada en un formato hash. Con esto evitamos guardar en claro dichas contraseñas. El algoritmo de encriptación además suele ser bastante básico, com aplicar un MD5 o similar. En algunos proyectos, no obstante, añaden cierta complejidad incorporando un valor adicional a la formula de encriptación. Es el caso de Prestashop que desde sus orígenes utiliza una cadena definida en el fichero config/settings.php. Dicha variable queda definida en ese fichero como _COOKIE_KEY_ Cuando deseamos resetear o modificar las contraseñas necesitamos regenerar los hash que se guardan en la bases de datos. En el caso de Prestashop deberemos de incorporar el valor antes comentado. En los proyectos que muevo muchas veces clonar el entorno de producción en un entorno de desarrollo con la finalidad de realizar ampliaciones. Y muchas veces necesitas poder logarte con varios usuarios con roles diferentes, … [Read more...] about Como cambiar o resetear la contraseña del administrador de Prestashop
Desarrollo
Mysql – Deshabilitar las restricciones de claves ajenas en InnoDB
InnoDB, en MySQL, aportó en su día lo que muchos esperábamos: cumplir, entre otras cosas, con aquel concepto tan académico de integridad referencial que nos permitía estar seguros de que los datos estaban bien ligados entre ellos (siempre y cuando nuestro diseño fuera acertado, claro está ;-) ) Esto es bastante útil pero da algunas pegas en el día a día del programador. En concreto nos puede pasar que intentemos importar una copia de base de datos sobre una existente y nos encontremos con este error: Cannot delete or update a parent row: a foreign key constraint fails. Lógico, si lo pensamos. Tenemos las relaciones monitorizadas y ya no se puede eliminar al tun tun. ¿Solución? Como estamos restaurando una base de datos entera no queremos mantener ninguno de los datos anteriores por lo que la restricción puede ser obviada sin ningún problema. ¿Forma de hacerlo? Decirle a MySQL que desactive temporalmente la comprobación de la integridad con la siguiente orden: SET … [Read more...] about Mysql – Deshabilitar las restricciones de claves ajenas en InnoDB
Configurar PEAR para un dominio en Plesk
Ahora mismo arranco los desarrollos con Zend Framework. MVC, robusto, bien pensado, bien documentado, escalable,... y muchas más cosas que a poco que hayamos oído hablar de él, ya nos suenan. La verdad es que lo estoy disfrutando. Pero antes de Zend estuve con otros frameworks, en especial, utilicé mucho PEAR. PEAR se organiza por paquetes y la mayor crítica que se le puede hacer es que no es MVC. De hecho yo diría que es un framework a la antigua, con una gran variedad de librerías para realizar casi cualquier cosa. De todas ellas la más destacable para mi, una de las que permiten desarrollar la capa de datos: DB_DataObject. Si tenéis tiempo, os aconsejo que juguéis con ella. PEAR tiene otra ventaja, para los linuxeros como yo, y es que tiene paquete en la mayoría de distros, por lo que instalar-lo en mi Ubuntu es tan fácil como apt-get install pear. Y a partir de aquí viene la gracia. Y es que PEAR a su vez tiene un gestor de paquetes que es llamado desde consola por … [Read more...] about Configurar PEAR para un dominio en Plesk
Análisis forense de una web hackeada (primera parte)
Recientemente he dado alojamiento web a un cliente nuevo que disponía de un portal realizado, por lo que he podido deducir, from scratch. Ya en su momento, después de realizar algunas modificaciones, observe que el acceso al backoffice se realizaba con una contraseña en claro que se encontraba en la base de datos. ¿A estas alturas aún hay contraseñas en claro?... Piensa uno. El caso, es que semanas después de la migración al nuevo servidor el portal fue vulnerado y aparecieron algunas modificaciones en sus contenidos donde el hacker en cuestión se hacía publicidad. Después de un vistazo rápido a los logs, compruebo que las modificaciones a los contenidos se realizaron limpiamente desde el backoffice, es decir, el hacker no accedió directamente a la base de datos, ni vulneró el Panel de control del servidor u otro servicio. Simplemente se colo utilizando el formulario de autenticación. No creo que el hacker llegara a deducir la contraseña, aunque esta estuviera … [Read more...] about Análisis forense de una web hackeada (primera parte)
Migrar un proyecto web entre servidores Plesk
Estamos migrando la casa. Comparto servidor con un colega. Teníamos un VPS que hasta no hace mucho cubría nuestras necesidades pero que poco a poco se ha ido quedando corto así que nos decidimos por un dedicado. Lo hemos configurado con una Ubuntu Server 10.04 LTS 64bit con un panel Plesk 10. Podíamos elegir entre Cpanel y Plesk y de hecho dudamos pero el anterior servidor tenía un Plesk 8, el cual no me resultaba incómodo, y además nos aseguraba la compatibilidad... y efectivamente ha sido una buena elección. El Plesk 10 modifica un poco la forma en que refleja los planes de alojamiento en el sistema de ficheros pero aún sigue la linea de su predecesor, lo cual tiene sus ventajas. Para probar el rendimiento del nuevo servidor he movido un subdominio, pongamos test.example.com, de una tienda virtual, en concreto un Prestashop, que utilizo para que el cliente valide los cambios de desarrollo antes de subirlos a producción. El dominio principal (example.com) sigue alojado … [Read more...] about Migrar un proyecto web entre servidores Plesk
Limitar la velocidad de una descarga con wget
Salgo a comer y desde hace un tiempo he migrado mi oficina a un vivero de empresas en Xàtiva. El espacio es genial. Disfruto de un despacho compartido con un asesor financiero, el cual ya conocía anteriormente y con el que me llevo genial. El cambio fue casi imperativo con la llegada del segundo hijo. Imposible continuar trabajando en casa. Por otro lado, dejando a parte la mejora de al productividad que implica tener un espacio exclusivo para el trabajo, la 'salud mental' también mejora cuando te obligas a salir de casa todas las mañanas para dirigirte al trabajo. Vivir en el campo, junto a un pequeño pueblo de 4000 habitantes, tiene sus ventajas, pero el ajetreo de la ciudad que me vio crecer me contagia de un dinamismo que de alguna forma influye en mi trabajo. Todo un lujo para un programador freelance. Sirva esta pequeña explicación para entender lo que sigue... Como decía al principio, salgo a comer y estoy recuperando en local una copia de una tienda virtual que tengo … [Read more...] about Limitar la velocidad de una descarga con wget
Corregir el LOCALE en un servidor de OVH
Tengo un servidor local de Subversion el cual he dedcido mover a unos de mis servidores en Internet para evitar problemas de conectividad y mejorar los tiempos de acceso desde el exterior. El servidor en concreto es una distribución Ubuntu 10 contratado a OVH, la cual, al encargarla pedimos que viniera configurada en español. No es nada grave pero reconozco que me siento más cómodo con el sistema en inglés. Como el servidor local también era una Ubuntu (le tengo amor), coger el SVN y moverlo al nuevo servidor ha sido tan sencillo como comprimirlo todo en un tgz y descomprimirlo luego en el destino. Cuatro apt-gets para instalar el servicio y a funcionar. Bueno, a medias. El caso es que a cada llamada del cliente svn en consola, el sistema me devuelve esto. svnadmin: warning: cannot set LC_CTYPE locale svnadmin: warning: environment variable LANG is es_ES.UTF-8 svnadmin: warning: please check that your locale name is correct Argh, con lo bien que iba todo. Bueno, … [Read more...] about Corregir el LOCALE en un servidor de OVH
Una galería de fotos enlazada con DropBox
Buscaba una solución para una galería de fotos, de rápida implantación y que permitiera una gestión intuitiva de las imágenes a los usuarios. Existen en Internet un montón de scripts de galerías realizados en PHP, entre ellos y de los más extendidos, Gallery Son bastante completos, e incluso vienen con pequeños programas cliente que te permiten agilizar la subida de imágenes desde el escritorio, pero siempre lo he visto como un acercamiento a la solución definitiva más que la propia solución. Por otro lado, integrar un script de este tipo en un proyecto web más completo o complejo que una galería de fotos puede resultar costoso y farragoso. De hecho, muchas veces puede que el script de galería de fotos tenga más peso o entidad que la propia web que estás desarrollando, por lo que su integración no acaba de justificarse. No puedo dejar de nombrar el caso del trabajo con CMS. En mi caso suelo realizar bastante programación con Drupal. En estos casos existen un sinfín de plugins … [Read more...] about Una galería de fotos enlazada con DropBox
¿Donde está el log del servidor de correo Qmail en un Plesk?
Habitualmente, en un servidor Linux, encontramos los logs del servidor de mail bajo /var/log/mail o /var/log/maillog . En el caso de Plesk, el cual suele utilizar Qmail, los logs se encuentran bajo /usr/local/psa/var/log/maillogm . Es una información breve pero que os puede evitar perder tiempo ;-) … [Read more...] about ¿Donde está el log del servidor de correo Qmail en un Plesk?
Script para importar productos y categorías en Prestashop
Si lo que buscas es un script que te permita importar datos a Prestashop desde un ERP, fuentes CSV/XML o varios proveedores, lee este otro post. Estoy en pleno desarrollo de una tienda virtual con Prestashop para un cliente del sector de la ferretería. El cliente tiene su aplicación de gestión de productos en el servidor de la empresa y la base de datos de estos debe de ser sincronizada con el e-commerce de forma automática de modo que cualquier modificación en la misma se vea actualizada en la base de datos del Prestashop. Inicialmente había pensado en la posibilidad de hacer un script que sincronizara las dos bases de datos conectando directamente con ellas pero visto que el Prestashop dispone de un módulo de importación a partir de ficheros CSV, he decidido utilizarlo. En esta arquitectura existen dos partes, la parte del cliente situada en el servidor local de la empresa y la parte de la tienda virtual situada en un alojamiento web, que entre otras cosas … [Read more...] about Script para importar productos y categorías en Prestashop