sábado, 5 de enero de 2013

Cookies Persistentes

Todo programador web sabe que es una cookie y para que sirve, son simples y pequeños archivos que contienen información asociada a un sitio web y que esta puede ser de hasta 4Kb.

A veces se nos a presentado el problema de hacer persistir ciertos datos de lado cliente de forma mas permanente, por ejemplo hacer que el navegador recuerde la sesión de un usuario o mejor aun hacer que esta sesión sea cross browser, eso quiere decir que podría recuperar una sesión desde otro navegador, la solución es una cookie persistente, también conocida como cookie zombie.

La forma de lograrlo es crear un sistema capaz de crear la cookie en varias vías y luego recuperar la información requerida, pero también debe verificar si en alguna de las vías la cookie ya no existe, entonces crearla de nuevo usando el valor en una de las otras cookies y para ello se utilizan métodos variados como pueden ser:

El método convencional con un Script de lado servidor que crea la cookie.

LSO que son cookies Flash.

Cookies almacenadas en imágenes.

El sistema HTML5 de almacenamiento.

Entre otros mas. Bien esto es mas complicado de lo que parece, pero si no quieres complicarte mucho o aprender a hacerlo que mejor que aprender de otros, puedes usar o echarle un vistazo a un proyecto llamado evercookie de Samy Kamkar. Este sistema crea la cookie en las siguientes vías:


 - Estándar HTTP Cookies (PHP)
 - LSO (Flash Cookies)
 - Almacenamiento Silverlight
 - En valores RGB (PNG)
 - En el Historial Web
 - HTTP ETags
 - Cache web
 - Cacheo en window.name
 - Almacenamiento userData de Internet Explorer
 - HTML5 Session Storage
 - HTML5 Local Storage
 - HTML5 Global Storage
 - HTML5 Database SQLite


Por cierto que este es cross browser y puedes descargar el código fuente que viene incluso con un ejemplo de uso. La pagina del proyecto es:

http://samy.pl/evercookie/

Por cierto si piensan hacer uso de el recuerden la ética y no le den mal uso "un gran poder conlleva una gran responsabilidad" XD

Saludos espero les sea de utilidad.


No hay comentarios.:

Publicar un comentario