Blog

Ardilla Quio Ardilla Quio

21 de Marzo de 2011

Expresiones regulares: conceptos avanzados

En nuestra entrada "Expresiones regulares: conceptos básicos" comenzamos a tratar los conceptos básicos para trabajar con expresiones regulares. Como el artículo se nos estaba quedando un poco más extenso de lo esperado, hemos preferido dividir el tema en dos capítulos para mejorar su organización y facilitar la comprensión. De esta forma continuaremos en esta entrada hablando sobre expresiones regulares, comentando ahora ciertos temas más avanzados que se nos quedaron en el tintero, como el concepto de voracidad, aserciones y diversas secuencias de escape de gran utilidad.

01 de Marzo de 2011

Introducción a los microformatos

Los contenidos de una web están generalmente destinados para la comprensión por parte del usuario; para las máquinas (buscadores, agentes de usuarios, ...) éstos carecen de significado, sólo es una cadena de texto plano que reproducir. La web semántica trata de modificar esta forma de representarlo, de dotar a la web de un significado tanto para humanos como para máquinas.

21 de Febrero de 2011

Expresiones regulares: conceptos básicos

A la hora de trabajar con cadenas de texto todos los lenguajes de programación nos proporcionan unas útiles pero simples funciones comunes: buscar una subcadena dentro de un texto, buscar la primera aparición de un carácter, etc. Pero para un tratamiento más avanzado la mayoría de lenguajes añaden librerías de funciones para trabajar con expresiones regulares. Las expresiones regulares nos proporcionan mucha más potencia, pues mediante el uso de unos simples patrones podemos especificar de forma concisa y flexible cadenas de texto para usar en búsquedas, reemplazamientos, etc.

16 de Febrero de 2011

Encriptar y guardar contraseñas en base de datos

Siempre que se diseña una aplicación que necesite identificación de usuarios se suscita la duda de si utilizar un sistema de autenticación externo (Facebook, Google , OpenId, ...) o un sistema de autenticación propio. Cuando se utiliza un sistema de autenticación propio, se plantea el problema de la seguridad a la hora de guardar las contraseñas de los usuarios en nuestra base de datos.

08 de Febrero de 2011

MySQL: búsqueda de textos en bases de datos

Habitualmente en las páginas web necesitamos realizar búsquedas en los textos, ya sea en artículos, noticias o cualquier sección de nuestra web. Cuando esta búsqueda es sobre una base de datos, la primera idea que nos surge es la del operador LIKE de SQL. Pero esta búsqueda tiene un rendimiento bastante malo, puesto que necesita realizar la búsqueda en todas las filas de la tabla encontrando coincidencias en todas las subcadenas de los campos seleccionados.

19 de Enero de 2011

@font-face: Incrustando tipografías en una página web

Desde el principio una de las limitaciones más importantes en el diseño web ha sido en el uso de fuentes tipográficas. Aunque teóricamente era posible usar cualquier fuente en una página web, en realidad esto era impracticable debido a que cada visitante de la web debía tener la fuente en cuestión instalada en su ordenador para poder visualizarla correctamente. Por ello, hasta ahora los diseñadores web tenían que limitarse a usar un pequeño conjunto de fuentes "seguras": aquellas fuentes que vienen instaladas en los sistemas operativos más comunes (Windows, Mac OS X, Linux, ...) y que por lo tanto sabemos que van a estar instaladas en el 99% de los ordenadores visitantes.

14 de Enero de 2011

Seguridad de las sesiones en PHP: Cross-Site Session Transfer

Cross-Site Session Transfer (transferencia de sesión entre sitios) es un tipo de ataque que, dada su naturaleza, sólo puede darse en servidores compartidos. El ataque se basa en utilizar la sesión creada en una aplicación web en la cuenta del atacante para acceder a una aplicación web (que debe tener una implementación de las sesiones del sistema de autenticación similar) de otro usuario en el mismo servidor.

Es decir, poniendo como ejemplo de aplicación web una tienda virtual (como el osCommerce), un usuario que tenga su tienda virtual en un servidor compartido podría acceder como administrador en su propia tienda y luego utilizar esa sesión para acceder como administrador a la tienda virtual de otro usuario.

30 de Diciembre de 2010

CSS Sprites

Un factor fundamental que debemos tener en cuenta a la hora de programar una página web es la velocidad de carga. Siempre que trabajamos con el código tenemos en cuenta este factor, pero hoy comentaré una técnica que nos permitirá reducir este tiempo con el uso de CSS. Es una idea que tiene su origen en los antiguos videojuegos y en la necesidad de utilizar mejores gráficos sin que esto afectara al rendimiento, conocida como Master Grid.

La Master Grid no es más que una imagen que contiene todas las imágenes necesarias para la ejecución del juego, y para mostrar la imagen deseada sólo habría que alterar la posición del fondo; así la página web solamente necesita pedir al servidor una imagen.

23 de Diciembre de 2010

Seguridad de las sesiones en PHP: Session Fixation

Session fixation (fijación de sesión) es un método de Session hijacking (robo de sesión) un poco especial, ya que, si normalmente en el robo de sesión se intenta conseguir el identificador de sesión de un usuario ya autenticado, la fijación de sesión se basa en asignar un identificador de sesión conocido a un usuario antes de que se autentique.

Por hacer una analogía: el robo de sesión es como intentar robar la clave de una tarjeta de crédito, mientras que la fijación de sesión es intentar que la víctima cambie su clave a un número dado (y por lo tanto conocido) por el atacante.

Lo malo de este ataque es que es muy fácil de realizar. Lo bueno, es que es muy fácil de prevenir.

21 de Diciembre de 2010

CSS hacks para Internet Explorer

En los últimos años los fabricantes de navegadores web se han concienciado por fin de la importancia de que sus productos se adhieran a los estándares HTML y CSS para un correcto visionado de las páginas web. Pero por desgracia eso no fue siempre así, y durante años los maquetadores han tenido que pelearse con navegadores que poseían motores de renderizado incompatibles y repletos de errores. Para ello, se han desarrollado diversas técnicas, conocidas como trucos o hacks de CSS, que permiten explotar las formas peculiares en las que distintos navegadores interpretan el código CSS y conseguir contrarrestar los errores de renderizado propios de cada navegador.