JASoft.org

El blog de José Manuel Alarcón Aguín. Programación web y mucho más...

MENÚ - JASoft: JM Alarcón

Cómo cambiar el orden de los algoritmos criptográficos de SSL en Windows Server / IIS

Hace poco veíamos cómo solicitar un certificado digital para SSL usando un algoritmo de hash moderno, y no el que se usa por defecto en IIS.En esta ocasión vamos a ver cómo podemos modificar en Windows Server, y por lo tanto en Internet Information Server, el orden de preferencia de los diferentes conjuntos de algoritmos de cifrado disponibles. De este modo nos cerciorarnos de que los más modernos y seguros van primero en la lista y por lo tanto se les da preferencia a la hora de cifrar las comunicaciones, obteniendo un servidor más seguro.La cosa es bastante sencilla. Sólo hay que saber en dónde tocar.Lo primero que tenemos que hacer es abrir el editor de políticas de seguridad local del servidor. Para ello puedes intentar escribir:gpedit.smcen una línea de comandos o en el diálogo de ejecutar (Windows+R), pero lo más probable es que te aparezca este mensaje:El motivo es que necesitas usar una cuenta con privilegios elevados para poder cambiar los ajustes de seguridad. Así que lo mejo... [Más]

Cómo solicitar certificados con SHA-2 en lugar de SHA-1 en IIS y Windows Server 2008

Dentro de las tareas criptográficas necesarias para realizar comunicaciones seguras están los algoritmos de resumen digital o hashing. Uno de los más utilizados desde hace varios lustros es el algoritmo SHA-1. El problema es que este algoritmo ha sido ya vapuleado por algunos expertos en seguridad a partir de 2004, y hoy en día se considera inseguro, por lo que la mayor parte de fabricantes de navegadores y otros sistemas han anunciado que irán dejando de soportarlo paulatinamente: Microsoft Google Mozilla Lo que hay que hacer es utilizar SHA-2 en cualquiera de sus 6 variantes, y más en concreto se suele utilizar SHA-256. El consenso general es que a partir del día 1 de Enero de 2017 los navegadores que se encuentran con una conexión segura SSL basada en el algoritmo SHA-1 pasarán a considerarla insegura y mostrarán un aviso de seguridad. Es más, hoy en día esto ya está ocurriendo pues... [Más]

Cómo averiguar la versión de Node.js que estás utilizando

Hace unos días se lanzó la nueva y esperadísima versión 4.0.0 de Node.js que ofrece novedades muy interesantes y añade estabilidad a la plataforma.Sobre todo en bibliotecas reutilizables (módulos), en ocasiones puede ser interesante averiguar la versión exacta de Node.js en la que se está ejecutando tu código de modo que puedas hacer uso de algunas características o no en función de la versión actual. Vamos a ver cómo puedes averiguarlo.En primer lugar vamos a ver cómo puedes ver qué versión de Node.js tienes instalada en tu máquina. La forma más sencilla es abrir la línea de comandos y utilizar el propio ejecutable node.exe con el parámetro "-v", así:En esta imagen vemos lo que devuelven la nueva versión 4.0.0 y una más antigua (la 0.12.2 que viene con las herramientas de Apache Cordova de Visual Studio, que es del 31 de marzo ¡muchos cambios desde entonces!Vale, esto está bien pero realmente lo que necesitamos es poder averiguar esta información desde nuestro código, y a ser posible ... [Más]

Precedencia de codificaciones en una página web

En informática existen muchas maneras diferentes de representar texto, de modo que pueda representar diversos conjuntos de caracteres, ideogramas y símbolos.Al principio todo era muy sencillo, pero poco útil. Los estadounidenses desarrollaron la informática y, como no, la hicieron totalmente "anglocéntrica" desarrollando el conjunto de caracteres ASCII (American Standard Code for Information Interchange). ASCII era capaz de representar 128 caracteres diferentes del alfabeto anglosajón. Por lo tanto no había ni tildes, ni "eñes" ni por supuesto caracteres cirílicos, ideogramas japoneses, etc...En la actualidad existen infinidad de maneras de codificar los caracteres para almacenarlos, transmitirlos y mostrarlos en un sistema informático. El más común y utilizado en el mundo es UTF-8 (Unicode transformation Format-8). UTF-8 es capaz de codificar millones de caracteres diferentes y dispone de todos los símbolos usados en lenguajes humanos, además de otro tipo de representaciones (como emo... [Más]

Desinstalar una versión concreta de PHP en IIS

Si instalas PHP en Internet Information Server usando un instalador automatizado te ahorras mucho trabajo de configuración. Lo malo es que no sabes qué ha hecho realmente por debajo y por lo tanto a la hora de hacer algún ajuste o de desinstalarlo, tienes un problema. En el caso concreto de que lo hayas hecho con el Web Platform Installer de Microsoft es aún peor, ya que entonces no tienes siquiera una entrada en la herramienta de "Desinstalar programas" del sistema. Tienes que hacerlo todo a mano. pan para hoy, hambre para mañana.A medida que vas actualizando PHP a las últimas versiones que van saliendo, tiendes a acumular variantes de lo mismo una y otra vez, Está bien dejar la versión anterior unos días o semanas por si acaso aparece un conflicto o un bug, y así poder volver atrás. Pero en cuanto pase ese periodo de seguridad lo mejor es librarse de ellas.¿Cómo puedo deshacerme de una versión concreta de PHP que tenga instalada en mi servidor?Los pasos son sencillos y los listo a co... [Más]

Cómo solucionar el error 500 de PHP 5.6 con FastCgiModule en IIIS

Aunque PHP se asocia habitualmente con Apache y Linux, lo cierto es que funciona muy bien bajo Windows Server con Internet Information Server. Personalmente no me gusta mucho PHP, pero a veces no me queda más remedio que montarlo en algún servidor porque los diseñadores/webmasters me demandan WordPress o algún producto similar (que tampoco me gusta demasiado). Ya que tengo que montarlo, al menos que sea en Windows: lo que me faltaba es tener un servidor Linux para administrar. Bastante tengo con pegarme de vez en cuando con mi Linux de escritorio. Así que ni corto ni perezoso monto un MySQL y un WordPress con PHP en unos minutos (lo cierto es que es muy fácil).La manera más sencilla de hacerlo es utilizar el Web Platform Installer de Microsoft (WebPI). Lo descargas, lo lanzas, escoges lo que quieres instalar (por ejemplo WordPress) y se te instala junto con todas sus dependencias (MySQL, PHP, Wincache...) sin que apenas tengas que hacer nada.Sin embargo no te recomiendo usar WebPI para... [Más]

HTML: Sobre idiomas de contenido, traducciones y cómo controlar todo esto

El inglés es el idioma más hablado del mundo, la lingua franca que todos usamos para viajar y hacer negocios en todo el mundo. Es como el Arameo en tiempos de Jesucristo, vamos. No hablarlo o entenderlo al menos al leerlo es una gran barrera para multitud de puestos de trabajo y en especial para los programadores y demás técnicos, ya que la mayor parte de los documentos están en este idioma, siendo predominantes las empresas estadounidenses en el mundo del software y el hardware, y adoptando este idioma todas las empresas que se quieren internacionalizar.Por suerte, aunque no lo entiendas, la propia Internet te ofrece la solución en forma de traductores on-line, el más utilizado de los cuales es Google Translator. Permiten traducir entre varias decenas de idiomas permitiéndonos, por ejemplo, leer una página en Chino traduciéndola por completo al español o al inglés en unos instantes. Las traducciones aún dejan bastante que desear en muchos casos (ver figuras varias en este artículo com... [Más]

Escalabilidad: Granjas web con ASP.NET e IIS

Aunque hayamos diseñado nuestra aplicación web con el máximo cuidado y tratando de que esté lo más optimizada posible, si tiene éxito y acaba creciendo mucho en cuanto a necesidades de atender usuarios y peticiones, llegará un momento en el que no de más de si y sea necesario hacerla crecer. Una aplicación que reciba simplemente unas pocas peticiones por segundo va a funcionar sin problema en cualquier servidor barato, pero si el número de peticiones crece y necesitamos atender a decenas, cientos o miles de peticiones por segundo es el momento de pensar en la escalabilidad y el crecimiento. La escalabilidad de un sistema informático se define como la capacidad de éste para expandirse según las necesidades que se deriven del uso que se le va a dar. De este modo decimos que una aplicación web es escalable si es capaz atender a un número cada vez mayor de usuarios sin necesidad de ca... [Más]

Uso selectivo de dependencias en módulos con RequireJS

La configuración de RequireJS ofrece muchas posibilidades para hacer gran cantidad de cosas útiles. La semana pasada, por ejemplo, os contaba cómo forzar la descarga de todos los scripts/módulos de una página inhabilitando la caché gracias a un parámetro añadido automáticamente a todas las peticiones.En esta ocasión me voy a fijar en otro parámetro interesante llamado map. La función de este parámetro es "mapear" ciertos módulos de manera especial cuando sean dependencias de otros módulos.Por ejemplo, imagínate que tienes que usar dos versiones del mismo módulo (digamos jQuery), pero quieres usar una en particular para un determinado módulo que depende de ella, y la otra para otro módulo diferente.Supongamos que tenemos una estructura de archivos como esta:- modulo1.js - modulo2.js - libs/ - jquery1.11.2.js - jquery2.1.3.js Es decir, dos módulos en la raíz de la carpeta de scripts, y una subcarpeta "libs" con las dos versiones de jQuery. Imaginemos ahora que el módulo núme... [Más]

Forzar siempre la descarga (sin caché) cuando usas RequireJS en aplicaciones JavaScript

Imagina la siguiente situación, bastante común por otro lado: Estás desarrollando una aplicación JavaScript (generalmente de tipo Single Page Application), y utilizas la biblioteca require.js para realizar la modularización de la misma en lado cliente. Vas tocando tu código JavaScript y probándolo y depurándolo en diferentes navegadores. Eso implica lanzarlos con bastante frecuencia, albergando tu aplicación en un servidor web local para probar la aplicación. El problema surge porque el servidor web hace caché de los archivos estáticos (como son los .js) por lo que cada vez que cambias algo en un script, aunque refresques la página, no siempre vienen los cambios que has realizado. Esto puede conducir a grandes frustraciones porque a veces cambias un carácter o una línea, crees que estás probando esa última versión, pero en realidad estás trabajando toda... [Más]