Wyvern

Wyvern. Muchos Lenguajes de Programación en Uno Solo

En este artículo voy a hablar sobre un lenguaje de programación que puede ser muy útil a la hora de proteger nuestras aplicaciones. Se trata de Wyvern.

¿Que es Wyvern?

El nombre proviene de la criatura legendaria con cabeza de dragón, alas, cuerpo de reptil, dos patas y una cola. El lenguaje de programación Wyvern se trata de un lenguaje aún en desarrollo que está siendo diseñado por Jonathan Aldrich en el ISR (Institute for Software Research). Este lenguaje de programación se basa en el método de utilizar varios lenguajes en el mismo programa. Este concepto permite proteger las aplicaciones contra ataques de inyección de código. Se trata de un lenguaje para construir páginas web o aplicaciones móviles. Se desarrollaría con un solo lenguaje, pero por debajo se utilizarían “sublenguajes” para realizar las distintas tareas (como SQL para la base de datos, HTML para maquetar la páginas, etc).

Aumentar la seguridad

Uno de los principales problemas de seguridad es la inyección de código. Se trata de, utilizando los formularios de una aplicación, introducir comandos de código con el objetivo de dañar el sistema. Por ejemplo podría introducir en un formulario de una página web en vez de mi nombre el comando SQL “DROP TABLE USUARIOS”. Si la página no está bien diseñada, y existiera una tabla en la base de datos llamada usuarios, se borraría y se perderían muchos datos de los usuarios. Un lenguaje como Wyvern nos facilitaría la tarea de protegernos ante este problema. Wyvern entiende e identifica los diferentes lenguaje por contexto, tratando los datos y los objetos como literales. De tal forma, en vez de enviar la petición a la base de datos a través de un método PHP por ejemplo, utilizaría SQL directamente. A continuación muestro un ejemplo de código escrito con Wyvern.

type Lot =
 meth value : int
 meth compare(other : Lot) : int
 meth sell : int

 meth purchase(q : int, p : int) : Lot =
 new
 var qty : int = q
 var price : int = p
 meth value : int =
 this.qty * this.price
 meth compare(other : Lot) : int =
 this.value - other.value
 meth sell : int =
 val qtySold = this.qty
 this.qty = 0
 qtySold

 val aLot = purchase(100,100)
 val d = aLot.compare(purchase(50,90))
 val value = aLot.value
 val qtySold = aLot.sell

Conclusiones

Aunque Wyvern todavía no está terminado, podemos decir que podría ser un gran paso a la hora de solucionar uno de los grandes problemas de seguridad que existen. No es que ahora no se pueda solucionar, pero Wyvern facilitaría mucho la tarea. Podríamos estar ante un nuevo concepto y una nueva forma de programar.

Dejar un comentario

Uso de cookies

Este sitio web utiliza cookies para que usted tenga una mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información sobre las cookies utilizadas.plugin cookies

ACEPTAR
Aviso de cookies