Latch in Node.js… too mainstream?ElevenPaths 18 julio, 2014 Hoy en día cuando comenzamos cualquier proyecto web que se precie existen unos pasos de obligado cumplimiento si queremos estar en la cresta de la ola y convertirnos en verdaderos «hipsters». Lejos quedaron las épocas donde se usaban frameworks que eran «mainstream», donde los hombres eran hombres (y las mujeres mujeres) y escribían sus propios drivers. Node.js? Too mainstream Actualmente estamos viviendo una carrera continua para ser más modernos: desde frameworks como Nodyn donde desarrollamos en ClojureScript que compila a JavaScript, se ejecuta en Node.js que compila a una… ¡JVM!, a infinidad de variedades de AngularJS (EmberJS, Backbone, Knockout, Ractive.js etc.), alternativas a Grunt como gulp.js, alternativas a Yeoman como FireShell, pasando por convertidores de JavaScript a CoffeeScript, o mejoras sobre el propio CoffeeScript como Six o Functional Reactive Programming como bacon.js. Básicamente, estos son los pasos principales para desarrollar cualquier proyecto web en 2014: Escribe tweets sobre él. Fotografía tu espacio de trabajo y súbelo a Instagram. Elige tu framework JS. Configura tu MongoDB y Redis. Visita Reddit, meneame, forocoches y similares. … Profit Bromas aparte, es para nosotros un placer tener ya disponible un SDK de Latch para Node.js e incluso una estrategia de autenticación para PassportJS de Latch. Para los que no lo conozcan, Node.js es un framework creado en 2009 por Ryan Dahl y su desarrollo está patrocinado por la empresa Joyent (compañía que ofrece IaaS y PaaS, y entre cuyos inversores se encuentra Telefónica). Su característica principal es que está basado en el famoso y potente motor V8 de JavaScript de Google y pretende ofrecer una forma fácil y segura de crear aplicaciones en JavaScript escalables y de altas prestaciones. De hecho una de las características que cuesta un poco al principio entender es su orientación mayoritaria a utilizar código asíncrono y basado en eventos, que puede llegar a ser más complejo que uno síncrono normal. Si se comprueba el código del SDK de Latch veremos que, realmente, es muy sencillo (el código siguiente está extraído de index.js). Primero tenemos que añadir las cabeceras HTTP que necesitan recibir nuestros servidores de Latch para saber que las peticiones son correctas: Y luego simplemente hacemos la petición HTTP a nuestros servidores de Latch con la operación escogida. Observando este último código podemos ver una parte de funcionamiento de Node.js donde se aprecia ese carácter asíncrono que se ha mencionado. La petición HTTP que realizamos (el «request») es a su vez una función donde podemos ver varios eventos; en la respuesta tenemos el evento «data», que significa que estamos recibiendo datos, y también el evento «end» que significa que ya hemos recibido todos los datos y pueden ser tratados si se quiere (o se podrían haber tratado según llegaban). También existe un evento «error» en la petición, en el caso de que hubiera algún problema con la petición HTTP. Así de sencillo; con unas cuantas líneas tenemos implementado todo el SDK de Latch en Node.js. También hemos puesto a disposición de todos una estrategia de autenticación de PassportJS para que sea fácil su uso: Ahí mostramos ejemplos de cómo utilizar Latch, ya sea como: …una estrategia más en este caso de autorización …una integración con cualquier otra estrategia de autenticación existente de PassportJS (se puede ver la lista de las soportadas actualmente en la página de PassportJS, aparte de la autenticación local que suele ser la más utilizada) En definitiva, el SDK de latch para Node.js se une a lista de SDK existentes como PHP, Java, Ruby, Python, C, .NET o PowerShell para que se puedan utilizar en todas las aplicaciones. David Barroso david.barroso@11paths.com @lostinsecurity Ejemplos de fuga de información a través de webMayhem: malware para *nix, «como si fuera un Windows»
Daniel Pous Montardit Resiliencia, clave en sistemas Cloud-Native En el primer post de la serie Cloud-Native, ¿Qué significa que mi software sea Cloud Native?, presentamos la resiliencia como uno de los atributos fundamentales que nos ayudan a...
Telefónica Tech Boletín semanal de Ciberseguridad, 21 – 27 de enero Killnet apunta contra objetivos en España Esta semana el grupo hacktivista Killnet anunció una campaña de ataques contra Alemania, dando lugar a la realización de ataques de Denegación de Servicio...
Gonzalo Fernández Rodríguez ¿Qué significa que mi aplicación sea Cloud Native? El término Cloud Native es algo que va más allá de mover las aplicaciones alojadas en un data center a una infraestructura proporcionada por un proveedor Cloud, sea Cloud...
Telefónica Tech Boletín semanal de Ciberseguridad, 14 – 20 de enero Vulnerabilidades críticas en los router Netcomm y TP-Link Se han descubierto una serie de vulnerabilidades en los routers Netcomm y TP-Link. Por un lado, los fallos, identificados como CVE-2022-4873 y CVE-2022-4874, se tratan de un...
Jorge Rubio Álvarez Consecuencias de un ciberataque en entornos industriales Podemos encontrar entornos industriales en cualquier tipo de sector que nos podamos imaginar, ya sea en empresas de tratamiento de agua, transporte, farmacéuticas, fabricación de maquinaria, eléctricas, alimentación o...
Telefónica Tech Boletín semanal de Ciberseguridad, 7 – 13 de enero Microsoft corrige 98 vulnerabilidades en su Patch Tuesday Microsoft ha publicado su boletín de seguridad correspondiente con el mes de enero, donde corrige un total de 98 vulnerabilidades. Entre estas...