En un artículo parecido el día de hoy (20 de marzo), en ITManagment, se comenta el interesante punto de vista de Douglas Crockford, el creador de JSON (JavaScript Object Notation), Crockford se desempeña como Arquitecto Javascript Senior en Yahoo!, y esta convencido de que la web como la conocemos está mal.
Durante un discurso de apertura en AjaxWorld conferencia en New York, Crockford lanzó una polémica opinión contra de la Web como la conocemos en la actualidad. "La cuestión no es si deberíamos reparar la web, sino ¿podemos hacerlo?", Crockford le pregunto al nutrido grupo que llenaba las instalaciones. "El navegador no era la mejor tecnología, cuando se introdujo. El navegador se diseñó como una plataforma para presentar documentos, no como una plataforma para correr aplicaciones."
Crockford argumentó que los navegadores no fueron diseñados para hacer todo ‘todas las cosas que hace Ajax " y el hecho de que Ajax funcione es porque la gente encuentra maneras de hacer Ajax resuelva los problemas a pesar de sus limitaciones. Ésto hace que el desarrollo con Ajax sea innecesariamente difícil hoy en día, y ese es su mayor problema.
"El problema número uno de la web es la seguridad", declaró Crockford. "El navegador no es un entorno de programación seguro. Es inherentemente inseguro". No podría estar más de acuerdo de Crockford, sin embargo no tenemos una mejor alternativa a la vista.
Parte del problema dice Crockford es lo que él denomina el "problema Turducken". Crockford acuño esta palabra mezclando Turkey (pavo) con Duck (pato), para hacer referencia a que se trataba de rellenar el pavo con pato, aludiendo al hecho de que en la web de hoy en día existen varios lenguajes que son anidados uno dentro de otro como es el caso del HTTP, HTML, CSS, JavaScript, XML, y que estas mezclas exóticas son las que conducen a los problemas.
Crockford dijo además: "Un código que es benigno en un contexto puede ser peligrosa en otro. Descubrir éstos errores es difícil.", además acotó que esto no es un problema inherente de la web 2.0, que estos problemas estan presentes desde la aparición del Netscape 2.0 en 1995, sólo que la razón de que ahora escuchemos muchos más reportes de vulnerabilidades en la web, sobre todo en páginas con Ajax es debido al hecho de que los desarrolladores que hacen uso del mismo están usando más scripts que antes.
Los problemas de seguridad en la web estan basados básicamente en tres temas claves: JavaScript, DOM (document object model) y Cookies (galletas).
Crockford explicó: "Los objetos globales en JavaScript son la razón principal de los ataques XSS (Cross Site Scripting), donde todos los scripts corren con el mismo nivel de autoridad".
El problema con el DOM, por definición, es que todos los nodos por definición estan linkeados a todos los otros nodos de la red, lo cuál es un modelo claramente inseguro.
En relación a las Cookies, Crockford explicó que el uso erroneo que se hace de ellas como tokens para validar usuarios, es un problema también. ¿Por qué?, pues ésto expone a los web sites a solicitudes fraguadas.
"Si hay más de dos fuentes desde donde se pueden ejecutar los scripts, la aplicación no es segura y punto.", dijo Crockford en referencia a los populares mashups de la Web 2.0. Crockford recomienda que las aplicaciones desarrolladas como mushups no tengan acceso a información confidencial por su naturaleza insegura.
Finalmente Crockford dijo que existen algunas formas de ayudar a hacer Ajax más seguro. Entre ellas se encuentra el JSLint una inicitativa de validador de código que ayuda a eliminar los elementos inseguros de JavaScript. Crockford señaló que Google también está trabajando en una iniciativa similar con los proyectos Caja y Cajita.