Una página web es, hoy en día, el resultado de la interacción de una serie de componentes (código XML, hojas de estilo CSS, consultas a bases de datos, funciones de Javascript, etc). Así, en algunos tipos de web, programar y hacer el seguimiento de dichas interacciones puede convertirse en una tarea que consuma mucho tiempo.
Pero ahora el nuevo lenguaje de programación presentado por el profesor de desarrollo de software del MIT Adam Chlipala puede ser una forma de cambiar eso: Ur/Web será un lenguaje que permita escribir apps web como programas autocontenidos. Así, su compilador (el programa que convierte las instrucciones de alto nivel en código ejecutable por máquina) genera automáticamente las especificaciones del código XML y de la hoja de estilo correspondientes, e incrusta el código Javascript y la base de datos en los lugares correctos.
Además de facilitar la escritura del código de las aplicaciones web, Ur/Web también las hace más seguras. Como explica Chlipala, “pongamos que quieres tener un widget de calendario en tu web, y vas a utilizar una biblioteca que éste te ofrece, y que en la misma página hay un anuncio basado en el código proporcionado por una red de display. Lo que no queremos es que la red de publicidad pueda cambiar la forma en que funciona el calendario, o que el autor del código de éste sea capaz de interferir con la entrega de los anuncios”. Por ello, Ur/Web prohíbe automáticamente cualquier acceso no autorizado entre elementos de la misma página.
Parte de la seguridad de este nuevo lenguaje deriva de una propiedad que comparte con la mayoría de los lenguajes de programación mayoritarios, como Java o C++: se trata de un lenguaje fuertemente tipado. Esto significa que cualquier nueva variable que un programador define en Ur/Web está restringida a un determinado tipo de datos, y que cualquier nueva función ha de definir sobre qué tipo de datos actúa y qué tipo de datos devuelve.
Además, la estructura de Ur/Web le permite ser inmune a los ataques de inyección de código, e impide que realice consultas SQL no válidas, que contenga enlaces internos ‘muertos’, que existan desajustes entre los formularios HTML y los campos esperados por sus manejadores, y otros errores y agujeros de seguridad comunes hasta ahora en la programación web.
from TICbeat http://ift.tt/1B9vV1Z