Blog

Diseño Web, Gestores de contenidos, Seguridad

Protege tu backend de WordPress, wp-admin, con contraseña adicional en .htaccess

En informática siempre decimos que no hay un método de seguridad infalible. Que lo importante es añadir “capas de seguridad”. Es la suma de capas lo que securiza mejor el sistema. Hoy vamos a enseñaros a añadir otra más a vuestra web en WordPress: una contraseña adicional en tu backend (wp-admin o incluso wp-login si no tienes usuarios que usen el backend). Proteger el backend de WordPress, wp-admin, con contraseña usando htaccess. La idea es usar este artículo para generar dos cosas: un fichero .htpasswd que contenga un usuario y una contraseña encriptada. Puedes usar la web en el artículo para generarlo. Este fichero hay que ponerlo FUERA de la web, en un directorio al que el servidor pueda acceder pero que no sea público (en home o en cualquier otro).  Un fichero .htaccess que debe llamar al fichero anterior, y que guardaremos en el directorio wp-admin de nuestra web (importante, no es el fichero .htacess de la raíz). De esta manera, cuando alguien escriba en el navegador tudominio/wp-admin el fichero htaccess verá que necesita usuario y contraseña, y abrirá una ventana solicitándolo. Comprobará lo que introduzcas con el fichero htpasswd. Parece un poco lata, porque habrá 2 identificaciones (usuario y contraseña de htaccess y usuario y contraseña de WordPress). Pero recordad que significa que tenéis 2 “verjas” en el panel de administración de vuestra web. Además, este primer método elimina buena parte de los ataques de fuerza bruta a la web. El fichero htaccess en el directorio wp-admin será algo como esto (puede variar): AuthType Basic AuthName “Acceso restringido con contraseña” AuthUserFile “/home/user/.htpasswds/public_html/wp-admin/passwd” require valid-user La ruta del AuthUserFile puede ser la que querías. Por ejemplo /home/user/pepe/passswordsweb Arreglos extra que hay que añadir. Esta protección extra rompe alguna funcionalidad que puede (y puede que no) tenga tu tema. Rompe la API Ajax de WordPress. También las peticiones GET/POST. Para arreglarlo tenemos que editar el fichero .htaccess creado en el directorio wp-admin (el que acabamos de crear) y añadir: <FilesMatch “(admin-ajax|admin-post)\.php”> Order allow,deny Allow from all Satisfy any </FilesMatch> Para que permita estas solicitudes. Proteger wp-login con contraseña. Sin no tienes usuarios que deban acceder a tu backend puede interesarte también proteger wp-login. No puedes hacerlo igual que en el caso anterior porque, en este caso, no es un directorio sino un fichero. Pero es similar, y también protege el admin (que es un login) Tienes que editar el .htaccess del directorio raíz de tu web, el que crea WordPress y añadir: # Stop Apache from serving .ht* files <Files ~ “^\.ht”> Order allow,deny Deny from all </Files> # Protect wp-login.php <Files wp-login.php> AuthUserFile “/home/user/.htpasswds/public_html/wp-admin/passwd” AuthName “Private access” AuthType Basic require user mysecretuser </Files> Como veis, cuando alguien quiere entrar en wp-login hace lo mismo que el fichero anterior. Hemos puesto la misma ruta del fichero, podéis tener otra. Y hemos puesto un usuario pero puedes poner valid-user. Errores 404 o redirecciones infinitas. Después de estos cambios pueden ocurrir errores 404 o redirecciones en la web. Para evitarlos edita el .htaccess del directorio raíz de tu web y añade: ErrorDocument 401 default Recordad que todos estos casos, además de proteger la web, lo que hacen es mejorar el rendimiento de tu servidor. Porque estamos elminando muchas de las las peticiones de acceso “ilícitas” y los intentos de ataque (os sorprenderían la cantidad que hay).

Diseño Web, Gestores de contenidos, Prestashop

Cómo traducir el Welcome del asunto en el e-mail de bienvenida de Prestashop

Otro de esos fallos raros de Prestashop (y tenemos muchos más). Cuando el cliente crea una cuenta, recibe un e-mail de bienvenida. Sin embargo en el asunto pone Welcome. Si vas a los asuntos de e-mails de la sección de traducciones del backend, aparece el término. Pero por más que lo traduces no hace ni caso. Por este y algún otro artículo reciente y, viendo el código y leyendo artículos, tengo la sensación que están cambiando el sistema de traducciones y no han hecho una revisión demasiado profunda. Cómo traducir el Welcome del asunto en el e-mail de bienvenida de Prestashop. De nuevo lo que pasa es que falta un fichero. Tienes que ir a a /mails/tuidioma , por ejemplo /mails/es/ y buscar un fichero lang.php. Si no está ahí busca en los demás idiomas, puedes usar ese. Si no puedes recrearlo. Yo lo que hago es copiarlo a /themes/tuplantilla/mails/tuidioma  para tenerlos ahí en la plantilla y en las traducciones de la plantilla. Mi fichero que sólo tiene la traducción de Welcome es algo así: <?php global $_LANGMAIL; $_LANGMAIL = array(); $_LANGMAIL[‘Product out of stock’] = ”; ?> Pero puedes aprovechar para traducir otros términos. La gente lo usa para traducir también el Order Confirmation. Os dejo algunos de los que se usan. $_LANGMAIL = array(); $_LANGMAIL[‘Your new admin password’] = ‘ ‘; $_LANGMAIL[‘Your password’] = ‘ ‘; $_LANGMAIL[‘Welcome!’] = ‘ ‘; $_LANGMAIL[‘Order confirmation’] = ‘ ‘; $_LANGMAIL[‘Message from contact form’] = ‘ ‘; $_LANGMAIL[‘My personal informations’] = ‘ ‘; $_LANGMAIL[‘Message from a customer’] = ‘ ‘; $_LANGMAIL[‘Virtual product to download’] = ‘ ‘; $_LANGMAIL[‘Referral Program’] = ‘ ‘; $_LANGMAIL[‘Package in transit’] = ‘ ‘;  

Diseño Web, Gestores de contenidos, Prestashop

Traducir los campos del módulo de Transferencia Bancaria, wirepayment, en Prestashop

Otro de esos errores estúpidos y fácilmente corregibles de Prestashop. Por alguna razón hay ciertos campos del módulo de Transferencia Bancaria (wirepayment), que no se traducen correctamente. Si, la traducción aparece en el back office en módulos, pero pongas lo que pongas no hace ni caso. Aquí podéis ver el ticket abierto a Prestashop. Os dejamos la solución hasta que lo arreglen. Traducir los campos del módulo de Transferencia Bancaria, wirepayment, en Prestashop. La solución que nosotros hemos probado y visto que funciona es una de las mencionadas en el hilo anterior. Tenéis que crear, en el directorio de vuestra plantilla y crear (si no está) el directorio /modules/ps_wirepayment/views/templates/hook/. Después, del directorio raíz copia el fichero /modules/ps_wirepayment/views/templates/hook/payment_return.tpl a ese directorio de tu plantilla. Por último edita el fichero y cambia todos los campos traducibles de esta manera: {l s=”My string” mod=”ps_bankwire”}  lo conviertes, por ejemplo en   {l s=”My string” d=”Shop.Bankwire”} Esto hace que el campo aparezca en el apartado de traducciones en tu tema (Internacional>Traducciones>Traducciones del tema>Tu tema>Idioma) bajo el apartado Shop->Bankwire. Y cuando las traduzcas ahí SI que aparecerá la traducción.

Información Tecnica, Noticias Informáticas, Seguridad

El timo de la llamada del falso técnico de Microsoft. CUIDADO

Hoy alertamos de un timo que va apareciendo y desapareciendo por temporadas. Recientemente hemos recibido la llamada de uno de ellos, y claro respondido acorde. Y algún cliente también lo ha recibido (y nos ha llamado inmediatamente). Hoy os hablamos de la llamada del falso técnico de Microsoft. La primera vez que oímos sobre este timo, hace unos tres años, un cliente había “picado” y había pagado para la “reparación”. Después, hace un par de años, otro cliente nos llamó porque casi fue víctima del mismo timo En el último momento se lo pensó mejor y nos llamó para verificarlo. Desde entonces, ha estado volviendo cada cierto tiempo. Casi cada año la guardia civil recuerda este timo. Y Microsoft también ha avisado sobre él. El timo tiene variantes, pero básicamente consiste en: 1) Una persona que te llama haciéndose pasar por técnico de Microsoft (en otras ocasiones simplemente técnico sin mencionar empresa). En la mayoría de las ocasiones tiene acento extranjero, y habla como si llamara desde un SAT oficial (tono y vocabulario). 2) Una vez se ha puesto en contacto contigo, procede a intentar asustarte. De nuevo hay variantes: tu ordenador está infectado se ha detectado que tu ordenador está  mandando spam. Tu ordenador se está usando para fines delictivos etc 3) Como no, el siguiente paso es darte la “solución”. El debe conectarse para poder arreglarlo, para limpiar tu ordenador, para analizarlo, para detener el spam etc etc. Es importante hacerlo lo antes posible. 4) Para poder conectarse tu tienes que o hacerle un ingreso/pago  por sus servicios, instalar un programa desde una web que te deja (y que obviamente te llenará de todo) o pinchar en un enlace que te va a mandar para descargar su programa. Los riesgos de aceptar son muchos. Por un lado si te pide dinero la pérdida obvia de dicho dinero. Pero además, estás permitiendo el acceso a una persona que desconoces. En el mejor de los casos instalará virus, troyanos etc que obtendrán tus datos y convertirán tu ordenador en parte de una botnet. O te pedirá dinero por “la reparación realizada”. Estos son los amables. Pero en muchos casos, una vez dentro de tu ordenador, pueden cifrar los datos y pedirte dinero para que recuperes la información, chantajearte con datos que tienes, etc. No dejes a nadie conectarse a tu ordenador si no es de confianza. Sigue los consejos de OSI, no te fies de nadie que no sea conocido. Verifica las identidades antes de aceptar que se conecten a tu ordenador. Ante la duda, pide una segunda opinión. Microsoft sólo da soporte a través de sus canales de confianza (cuidado, esta gente hace páginas que suplantan dichos canales). Si te ocurre, denuncia.

Diseño Web, Gestores de contenidos, Prestashop

Quitar en el asunto de los emails de Prestashop el nombre de la tienda

Estamos desarrollando una tienda en Prestashop a la que estamos dedicando bastante tiempo y de manera muy minuciosa. Por lo tanto estamos resolviendo muchos problemas que muchos habréis encontrado, e iremos publicando aquí las soluciones. Uno de los que más le fastidiaba al cliente es que el asunto de los emails mostraba el nombre de la tienda. Algo como Asunto “[Nombre de la tienda] Bienvenido”. Entre corchetes. No es muy atractivo y quería quitarlo. Al fin y al cabo la dirección de correo y el cuerpo del mismo ya tienen información sobre la tienda. Cómo quitar en el asunto de los emails de Prestashop el nombre de la tienda. Para ello hay que editar la clase Mail.php. Cuando hacemos esto, mejor que editar el fichero de Prestashop deberíamos hacer un override. Si, en teoría pronto lo van a quitar, pero todavía no han propuesto nada que funcione tan bien, todos necesitamos modificar la tienda y los overrides son perfectos para ello y funcionan. Así que copia el fichero /classes/Mail.php  a /override/classes/Mail.php Editar el fichero /override/classes/Mail.php y busca las líneas:  /* Create mail and attach differents parts */ $subject = ‘[‘.Configuration::get(‘PS_SHOP_NAME’, null, null, $idShop).’] ‘.$subject; Como ves ahí pone el nombre entre corchetes. Edita la segunda línea para que quede: $subject = /*'[‘.Configuration::get(‘PS_SHOP_NAME’, null, null, $idShop).’] ‘.*/$subject; Estamos comentando la primera parte para que la ignore. Guarda el fichero y prueba. Antes de probar, siempre que hagas un override es bueno ir a /app/cache/prod y borrar los ficheros class_index.php classes.php Para que coja tu “override” de la clase. Prueba y debería estar solucionado. Obviamente el truco también sirve para poner delante lo que quieras en el asunto de tus correos. Por ejemplo: $subject = ‘Pon el texto que quieras’.$subject; Debería funcionar (no lo he probado).

Diseño Web, Gestores de contenidos, Prestashop

Prestashop: los e-mails de confirmación de pedido no listan los pedidos. Solución

Prestashop tiene ciertos errores “tontos”, que  se repiten de versión a versión y que tendrían muy fácil solución con algo de cuidado. En ocasiones parece que les falta ese cuidado de detalle. Este es uno de ellos, un error del que hay constancia desde versiones tardías de la 1.6 y que se repiten en varias versiones de la 1.7. Los e-mails de confirmación de producto no muestran la lista de productos. Solución. El problema es básico y “serio”. Llega la confirmación de pedido con el precio de la compra, pero sin productos en el mismo. Y claro, el cliente no tiene confirmación del producto que ha comprado. La solución es sencilla (y de ahí estúpido que no se haya resuelto desde Prestashop). Faltan los siguientes ficheros: order_conf_product_list.tpl order_conf_product_list.txt ¿Cómo conseguís estos ficheros? Si tienes una versión anterior funcional copialos y pegalos en la carpeta de correos (mails, ya sea la de Prestashop o , mejor, la de tu tema), en su idioma correspondiente. O pégalos en todos. Nosotros los hemos copiado de una versión 1.6 así que puedes probar a descargarte dicha versión (aunque creo que las últimas tenían dicho error). No hay que modificar nada de código. Nosotros lo copiamos en directoriodetutienda/themes/tutema/mails/es  (o los idiomas que quieras) y funcionó.

Gestores de contenidos, Prestashop, Trucos

Cómo cambiar el orden de los medios de pago en Prestashop

Un cliente nos ha pedido, esta semana, que quería que los medios de pago aparecieran en un orden diferente en el momento de realizar la compra. La verdad es que no nos lo habían pedido nunca y nos ha dejado un poco sorprendidos. No parecía fácil de solucionar. Al final otro desarrollador nos ha dado la solución y os la dejamos aquí por si os es útil. Cómo cambiar el orden de los medios de pago en Prestashop. Vamos a dar los pasos siguiendo el orden de Prestashop 1.7. En otras versiones puede variar el nombre de los menús o la colocación. Hay que ir a Diseño > Posiciones y ahí marcar la casilla “Mostrar los hooks invisibles“. Prestashop por defecto esconde del usuario ciertos hooks. Una vez marcada esta casilla podemos ir al apartado “paymentOptions” y ahí cambiar el orden de los métodos de pago que aparecen.  

Linux, Sistemas

Cómo saber el número de cores y CPUs en un Linux

En ocasiones puede interesarte saber el número de cores en tu máquina Linux, o el número de procesadores que van a poder gestionar un proceso. Hoy os decimos cómo. Cómo saber el número de cores y CPUs en un Linux. Tienes varias maneras. Por un lado puedes usar el comando nproc. nproc sin ningún delimitador proporciona el número de procesadores disponibles. nproc –all proporciona el número de procesadores instalados (estén o no disponibles). Por otro lado, el comando lscpu proporciona algo más de información detallada sobre el procesador, si bien a lo mejor algo confusa. Aquí hay que tener en cuenta que: CPUs =Hilos de procesamiento X núcleos por socket X sockets Como veis en la imagen CPUs= 1 X 4 x 1= 4, mismo resultado que el comando nproc. En este caso, por ejemplo, tenemos 1 procesador físico en 1 socket con 4 núcleos, y un hilo, por lo tanto 4 procesadores “virtuales”. Para más inri podéis ver esta misma información de otra manera con: grep -E ‘processor|core id’ /proc/cpuinfo o grep -m 1 ‘cpu cores’ /proc/cpuinfo    

Diseño Web, Gestores de contenidos, Prestashop

Prestashop Module Generator: utilidad para crear módulos básicos sobre los que trabajar

Prestashop es un gestor de contenidos para tiendas online que se basa mucho en la comunidad. Ellos generan un núcleo funciona básico y luego, si quieres más cosas, tienes que o comprar módulos, o crearlos tu. La compra de módulos es una buena idea porque mantiene a los desarrolladores activos, ellos mejoran el sistema mientras ganan dinero en el proceso. Y los clientes obtienen su funcionalidades extra. Si no quieres gastarte dinero, puedes desarrollar tu los módulos (que luego puedes vender etc). Cuando quieres construir un módulo, puedes empezar desde cero con la documentación de Desarrollador de Prestashop. Pero hoy os hablamos de una funcionalidad que os ahorra tiempo. Cómo crear un módulo de Prestashop desde cero con el Prestashop Module Generator. Prestashop Module Generator es una funcionalidad de la página https://validator.prestashop.com de Prestashop para crear módulos básicos. Este generador funciona a base de asistente paso a paso con el que puedes crear un módulo de cualquier tipo compatible para la versión que quieras de Prestashop. En el siguiente vídeo os lo explicamos, pero es muy sencillo. Recordad que es importante seleccionar el tipo de módulo que queremos, para que agregue lo que necesita, así como los Hooks que necesitemos (aunque estos se pueden registrar y usar más adelante). Y recordad también que esto es sólo una plantilla sobre la que trabajar…el módulo no hace nada. Sólo es la base. La funcionalidad se la das tu. Esta página: https://validator.prestashop.com , también sirve para luego validar tu módulo final y asegurarte que cumple con los “PrestaShop’s coding standards“, lo que facilita su compatibilidad y su posterior venta (si ves que es útil para otros).  

Diseño Web, Gestores de contenidos, Sistemas

Cómo probar los pagos con PayPal en una web. Paso 1. PayPal Sandbox.

Cuando diseñamos páginas web, sobre todo comercios electrónicos, una petición típica es que acepten pagos por PayPal (además de otros sistemas). En esos momentos uno tiene que poder hacer pruebas con pagos no reales. También cuando ocurre algún error con este método de pago: las pruebas deben hacerse en en entornos no reales. Para eso PayPal tiene un entorno de pruebas, PayPal Sandbox, que es un clon del entorno real. Esto es realmente útil porque se puede usar para realizar tantos pagos y operaciones ficticias como queramos en un entorno que funciona igual que el real pero que no nos cuesta dinero. Hoy os enseñamos a usarlo (porque no es tan sencillo). Cómo probar pagos con PayPal. PayPal Sandbox. Lo primero es que, obviamente deberías tener una cuenta de PayPal (si vas a vender de Business). Pero esa no la vas a usar para las pruebas. Podrías crear una directamente en Sandbox, pero no te lo recomendamos…luego es difícil autentificarla. Te aconsejamos seguir los siguientes pasos: Entre en PayPal Developer con tu cuenta real de PayPal. Este sitio, además de tener mucha información para programadores, te enlazará con el Sandbox. Lo siguiente que te recomiendo es que vayas a Accounts y ahí crees una cuenta con el nombre de tu e-mail de PayPal (usa otra contraseña). Esto crea cuentas en el PayPal Sandbox tranquilo, no te va a decir nada de cuenta duplicada. Si te pide verificar la cuenta, puedes ir a Notifications, elegir tu correo y verificarlo. Todos los correos que se mandan desde el entorno Sandbox no salen al exterior, sino que van aquí, a la bandeja de Notifications (si tienes asociada la cuenta a tu cuenta de developers). Si creas la cuenta directamente desde PayPal Sandbox te va a pedir verificarla, y te frustrarás porque no te llega ningún correo. En ese caso ve a Accounts (en Developers) y donde pone “To link your sandbox account to your developer account, log in with PayPal and provide your sandbox account credentials” pincha en log in with PayPal. Así podrás asociar la cuenta crear en el sandbox con esta de developers, y desde ahí ir a Notifications y ver las peticiones de confirmación. En accounts verás que también tienes una cuenta de vendedor (facilitator) y una de comprador (buyer) que son las que podrás usar para probar las compras en tu tienda. Puedes crear más cuentas de Sandbox, las que necesites. Para poder poner las credenciales pincha en cada cuenta y en Profile. Ahí verás el e-mail de acceso, podrás establecer la contraseña y, en el caso de las de vendedor, podrás ver los datos de la API (API credentials)que te pedirá tu módulo de PayPal o tu CMS. Con esto ya vas a poder trabajar y hacer pruebas de compra y de venta en tu tienda. Haz lo siguiente: Pon el addon o módulo en modo pruebas o sandbox (esto hará que se comunique con sandbox.paypal.com y no con paypal.com Usa las credenciales API (ver más arriba) de tu cuenta de vendedor para configurar el addon o módulo de Paypal. Usa el e-mail y contraseña de comprador para realizar compras en tu tienda. Podrás ir a Notifications en tu cuenta de developer para poder ver tanto ventas como errores que surjan con cada pedido. Una vez hayas probado todo y funcione, desactiva el modo Sandbox, y pon las credenciales API de tu cuenta real de PayPal. Todo debería funcionar sin problemas. Más información en la guía de Sandbox de PayPal.  

Scroll al inicio