Programación con Estilo
Algoritmos en Hojas de Estilo CSS
Breve historia
• 11/2006 Jeremiah Grossman menciona posibilidad de hacer un Scanner de Puertos en CSS.
• 02/2007 Robert Hansen explica como robar el historial de navegación de un usuario con CSS.
• 08/2007 Gareth Heyes libera el primer CSK.
¿Quienes?
• Jeremiah Grossman (2006)– CTO WhiteHat Security (USA)
• Robert Hansen (2006-2007)– CEO SecTheory (USA)
• Gareth Heyes (2007-2008)– Desarrollador e investigador de seguridad (UK)
• David Lindsay (2007-2008)– Ingeniero de seguridad en Security Innovation (USA)
• Eduardo Vela (2007-2008)– Ingeniero de seguridad en hi5, estudiante ITESM CEM
(México)http://sla.ckers.org/ Web Application Security Lab
Nuestros Propósitos
• Crear una alternativa para agregar interactividad a una página web.
• “Descubrir” un nuevo paradigma de programación.
• Impulsar el desarrollo de funcionalidades a favor de la algoritmia en CSS3.
Desafíos
• Implementar y descubrir como hacer algo en donde no se debería poder hacer.
• Asimilación de las limitantes de un lenguaje donde todas las instrucciones se ejecutan simultaneamente.
Historia (continuación)
• 11/2007 Eduardo Vela libera CSK2 (eventos, memoria, “toggles”) y el juego de ahorcado.
• 11/2007 David Lindsay y Eduardo Vela liberan sumador y multiplicador.
• 11/2007 Gareth Heyes demuestra implementación de un “clock”. (animaciones, contadores, etc..)
Herramientas
• Selectores de eventos.– :hover – Mouse sobre un elemento.– :active – Click sobre un elemento.– :focus – Cursor en un campo.
• Selectores de estado.– :checked – Memoria (bool) de una sesión.– :visited – Memoria (bool) de múltiples sesiones.– :target – Sección enlazada de la página.
Ejemplos
Respuesta de la industria
A ojos de la World Wide Web Consortium CSS3 WG
A ojos de Mozilla (Gecko) Style Team.
A ojos de WebKit CSS Team.
A ojos de la industria de seguridad computacional.
Turing-Completeness
• Implementacion de Latches (JK).
• Implementación de Flip-Flops (JK).
• Implementación de una ALU.
pendiente
hecho
hecho
return Q&A;