JASoft.org

Seguridad Web: Evitar ataques XSS con Cookies accesibles sólo desde el servidor

Seguridad Web: Evitar ataques XSS con Cookies accesibles sólo desde el servidor
Una de las técnicas de hacking de páginas web más conocidas es la de Cross-Site-Scripting o XSS. Mediante esta técnica, las aplicaciones Web vulnerables pueden ser atacadas para multitud de propósitos: servir de zombies para atacar a otras Webs inundándolas con peticiones, ejecutar código en zonas de seguridad menos restrictivas (como la local) o, sobre todo, robar la identidad de los usuarios del sitio vulnerable. Ha sido utilizado tradicionalmente en combinación con correos electrónicos maliciosos para entrar en sitios Web protegidos suplantando la identidad de usuarios autenticados. En mi curso de Desarrollo de aplicaciones seguras y seguridad de .NET monto un ejemplo completo de cómo utilizarlo en un supuesto sitio de banca electrónica (muy mal hecha y vulnerable), para robar la sesión del usuario y entrar en su cuenta. Este robo de sesiones se basa en la obtención mediante XSS de la cookie de sesión de un usuario, enviándola a un servidor bajo el control del atacante. Éste al rec... [Más]

Un milagro: error de concurrencia en Facebook

Un milagro: error de concurrencia en Facebook
Lo reconozco, no me he podido resisitir más. Las presiones eran demasiado fuertes y me he metido en Facebook. Llevo sólo un par de días y la aplicación, técnicamente hablando, me parece que está muy bien por lo que he podido ver (el UI). Me gusta mucho su sencillez, la agilidad de la interfaz AJAX, el chat, las notificaciones, etc.. Pero hoy, dándole al botón de "Me gusta" se ve que coincidí en el mismo preciso instante con otra persona haciendo lo mismo (porque justo a continuación aparecía una notificación al respecto) y fijaos el mensaje que me apareció: No me digas que no es flipante: una aplicación con decenas de millones de usuarios, super-escalable, y ¿me aparece esto?. Creo que he encontrado la aguja en el proverbial pajar. Es un don que tengo :-) Al menos sale en un formato apropiado y no "casca" miserablemente como pasa con otras. ¿Alguien sabe qué tecnología usa FaceBook por debajo? SQL Server seguro que no ;-)¿Y para la parte de programación Web de servidor? Si algui... [Más]

El atributo "defer" de JavaScript

El atributo "defer" de JavaScript
La metodología clásica de creación de páginas Web recomienda que todos nuestros scripts se encuentren en la cabecera de la página. Está bien tener un orden pero realmente no es necesario. Es más, nadie nos dice que no podamos incluso tener varias cabeceras en la página, una por ejemplo, después de cerrar la etiqueta </body>, si queremos. Hay algunas aplicaciones que usan mucho JavaScript. Sobre todo ahora con el uso masivo de capacidades AJAX en las aplicaciones Web. Algunos de estos scripts son simples bibliotecas de funciones con decenas o cientos de ellas que lo único que hacen es retrasar la carga de página mientras son procesadas por el navegador, ya que éste no sólo carga cada Script sino que también lo interpreta y ejecuta a medida que lo va leyendo. En otros casos el script necesita tener acceso a todos los elementos de la página antes de poder actuar (es decir, el HTML de la página debe ser procesado por completo y el árbol DOM construido). Si lo colocamos en la cabecer... [Más]

Supernet, que no es tan "super" y otras gambadas en bancas electrónicas

Supernet, que no es tan "super" y otras gambadas en bancas electrónicas
Llevo usando la banca electrónica de diversos bancos desde hace muchos años. Incluso creo que debo de haber sido de los primeros usuarios de algunas de ellas, sufriendo su mal funcionamiento en los primeros años. Recuerdo que en algún caso hasta detecté problemas de seguridad (hace ya una década) avisando a los interesados, que los parchearon enseguida pero ni siquiera tuvieron la decencia de dar las gracias. Lo cierto es que para ser aplicaciones de tanta responsabilidad y tan ampliamente usadas, la mayoría de las bancas electrónicas que conozco son aplicaciones Web bastante mal hechas, sobre todo desde el punto de vista de la usabilidad, donde les queda mucho camino por recorrer a casi todas. Actualmente utilizo 5 bancas electrónicas de otros tantos bancos, y son todas para echarse a temblar a excepción, quizá, de la de Fibanc. Una que me sorprende siempre negativamente y que es una de las que más años llevo usando, es la del Banco Santander. Desde mi punto de vista ni siquiera en ... [Más]

Como evitar que las sesiones caduquen por inactividad: The Film

Como evitar que las sesiones caduquen por inactividad: The Film
Uno de los posts más visitados de mi blog es en el que comento cómo evitar que las sesiones caduquen por inactividad. Es la tercera parte de una serie de posts sobre caducidad de sesiones en ASP.NET. Ha habido también muchos comentarios y parece que a mucha gente le cuesta bastante implementar la solución, por lo que tras varias peticiones (tanto en mi blog original, JASoft.org, como en Geeks.ms) me he decidido a generar un vídeo práctico mostrando como se hace.  Es del estilo de los que tenemos en los cursos de campusMVP pero con mucha peor calidad, que viene impuesta por las limitaciones de SOAPBox. Lo cierto es que estos sitios de vídeo en Internet no son los más adecuados para este tipo de grabaciones por su elevada compresión, que limita la calidad, pero bueno... se deja ver. A ver si lo puedo colgar en Channel9 de Microsoft en breve y así que podáis verlo con major calidad:

¿El futuro de los gráficos para juegos pasa también por la nube?

¿El futuro de los gráficos para juegos pasa también por la nube?
Creo que hoy en día nadie duda de las bondades que tiene la externalización de servicios computacionales y todo lo que se ha dado en llamar "cloud computing" (otro día hablaré de mi opinión al respecto y cómo creo que el término se está pervirtiendo bastante). Lo cierto es que no deja de sorprenderme las aplicaciones que algunos inventan para poner en la nube. Lo último que he leído al respecto me ha llamado poderosamente la atención porque, francamente, nunca pensé en la posibilidad de tener esto externalizado. Se trata de AMD -sí, el fabricante de chips- que está creando un supercomputador de procesamiento gráfico que estará disponible después del verano. La idea es alquilarlo para proporcionar a los creadores de juegos un entorno de alta escalabilidad y potencia que genere los gráficos de sus juegos en tiempo real. He ahí la importancia o, al menos, lo que a mi me ha llamado tanto la atención. La idea es que los juegos que se ejecuten en dispositivos con poca potencia (sobre todo ... [Más]

Forzar el modo de compatibilidad de IE8 en nuestras aplicaciones

Forzar el modo de compatibilidad de IE8 en nuestras aplicaciones
En el post que escribí hace unos días sobre cómo solucionar el problema de los menús de ASP.NET en IE8, comenté que en un futuro post explicaría cómo forzar desde nuestra aplicación que la gente que acceda a la misma con Internet Explorer 8.0 la vea en modo de compatibilidad con Internet Explorer 7.0. Esto es de especial importancia para nosotros si nuestra aplicación no se visualiza bien según los estándares estrictos de CSS 2.1 pero no tenía problemas con la versión anterior de IE. Dado que, como comentaba en el anterior post, no podemos confiar en que los usuarios vayan a pulsar el botón de compatibilidad si la página se ve mal (simplemente semarcharán o si tenemos mucha suerte intentarán usar Firefox), lo mejor que podemos hacer es forzar de manera transparente para ellos esa compatibilidad. Para ello disponemos de varias técnicas: 1.- Usar una etiqueta META especial en nuestra página Si incluimos la siguiente etiqueta META en la cabecera de nuestra página podremos conseg... [Más]

Sistema operativo en varios idiomas al mismo tiempo para prueba de aplicaciones

Sistema operativo en varios idiomas al mismo tiempo para prueba de aplicaciones
¡Fenomenal!: nos ha salido ese cliente en Arabia Saudí o Finlandia y ahora toca localizar nuestra aplicación a esos idiomas y, sobre todo, probarla en el sistema operativo real para no llevarnos sorpresas. Lo primero que suele hacer todo el mundo es correr hacia el MSDN y rezar para no haber tirado los DVDs de Windows en todos esos idomas raros que envían. Eso o descargarlo de MSDN Online para instalarlo en algún equipo. Lo que mucha gente no sabe es que la ediciones más profesionales de Windows viene con la posibilidad de trabajar en varios idiomas al mismo tiempo. En el caso concreto de Windows Vista, las ediciones Ultimate y Enterprise disponen legalmente de esta interesante capacidad. De esta manera no es necesario que nos instalemos varios sistemas operativos diferentes en varios idiomas, ni tendremos que andar con máquinas virtuales ni nada similar: nuestro sistema operativo de trabajo, normal y corriente, nos permitirá cambiar de idioma y localización de manera muy sencilla. ¿... [Más]

Mi menú ASP.NET no se ve en Internet Explorer 8: Solución rápida

Mi menú ASP.NET no se ve en Internet Explorer 8: Solución rápida
Internet Explorer 8 ofrece una compatibilidad con los estándares de la W3C sin precedentes en los navegadores de Microsoft (incluso ha pasado el ACID2 test). Se trata de una gran noticia para los programadores Web ya que cuanto más estándar sean todos los navegadores menos esfuerzos para desarrollar interfaces pasaremos pues no hay que estar pegándonos para conseguir que funcione en todos ellos. Por desgracia esta compatibilidad estricta hará que algunos sitios Web que funcionaban perfectamente en la versión anterior (la 7.0) de IE dejen de hacerlo ahora en la nueva versión, dado el modo diferente de tratar ciertos elementos (sobre todo CSS) que éste tenía. Esto es algo de lo que Microsoft es muy consciente y por eso ha incluído un modo de compatibilidad con IE7 en la última versión. Así, si entramos en una página que se veía perfectamente con IE7 pero ahora no vemos correctamente sólo tenemos que pulsar el botón a tal efecto colocado al lado de la barra de direcciones del navegador p... [Más]

Un añito más MVP

Un añito más MVP
Me ha pillaado de viaje (algo no muy raro últimamente) y lo acabo de leer, pero me he encontrado con un correo como siempre muy atento de la gente de Microsoft en el que me comunicaban que por quinto año consecutivo he sido reconocido de nuevo como Most valuable Professional (MVP) por Microsoft Corporation. Así que ya me ha alegrado el día, y esta vez más que nunca, la verdad, porque uno ya empieza a tener una edad :-) Pues nada, otro año más a dar guerra por todos los sitios que pueda (y el tiempo me permita). Genial :-)

Este soy yo y este es mi blog técnico, dedicado al software y a la programación.

Mis otros blogs

- JM Alarcón @ campusMVP.es
Contenido técnico en español orientado a desarrolladores
- JMAlarcon.es
Blog personal no técnico: sociedad, innovación, empresa...

Krasis

- campusMVP.es:
Los mejores cursos online de programación en español

- SELF LMS:
La plataforma de elearning más potente del mercado.