Skip to main content

Informe sobre la seguridad de los frameworks de JavaScript 2019

Escrito por
JavaScript Report Feature

30 de octubre de 2019

0 minutos de lectura

Te damos la bienvenida al informe de Snyk sobre el estado de la seguridad de los frameworks de JavaScript 2019.

En este informe, analizamos el estado de la seguridad de los ecosistemas de Angular y React. El objetivo de este informe no es entrar en las rivalidades que puedan existir entre ambos en cuanto a si uno u otro es realmente un framework; no los comparamos como frameworks competidores. En cambio, analizamos cada uno como una alternativa viable de ecosistema de frontend para crear tus proyectos de JavaScript, y nos centramos en los riesgos de seguridad, las prácticas recomendadas y las diferencias entre ellos.

Te recomendamos descargar la versión completa del informe en formato digital. También publicamos las siguientes secciones generales como artículos del blog:

Este informe abarca:

  • las prácticas de seguridad de cada uno de los dos proyectos principales: Angular y React

  • el estado de la seguridad de cada uno de los dos ecosistemas de módulos, a partir de un análisis detallado de las vulnerabilidades que contiene cada ecosistema

  • las prácticas de seguridad de otras alternativas comunes de frameworks de frontend de JavaScript, como Vue.js, Bootstrap y jQuery

  • las diferencias significativas de seguridad entre las distintas alternativas, en particular entre Angular y React

Principales conclusiones del informe sobre la seguridad de los frameworks de JavaScript 2019

Estas son las principales conclusiones de nuestro informe.

Seguridad de los proyectos principales de Angular y React

Seguridad de los ecosistemas de módulos de Angular y React

🔘Angular tiene veintitrés vulnerabilidades de seguridad en su proyecto heredado AngularJS (Angular v1.x).

🔘Los ecosistemas de módulos de React y Angular presentan vulnerabilidades de seguridad en componentes de bibliotecas de frontend muy populares, con millones de descargas. Algunas aún no tienen una solución de seguridad disponible.

🔘No se identificaron vulnerabilidades de seguridad en los componentes principales del framework Angular.

🔘Detectamos módulos maliciosos que afectaban a los ecosistemas de Angular y React e intentaban robar tarjetas de crédito, contraseñas y otros datos confidenciales utilizados en aplicaciones web de frontend.

🔘React tiene algunas vulnerabilidades de seguridad; parece que se encuentran regularmente en sus bibliotecas principales y se divulgan cada dos años.

🔘El framework Next.js demostró un gran compromiso con la seguridad: solucionó rápidamente las cinco vulnerabilidades encontradas a lo largo de la vida del proyecto y publicó las correcciones en tan solo una semana.

🔘Solo una vulnerabilidad del proyecto principal de React tiene un CVE oficial asignado. Ninguna de las vulnerabilidades reportadas de Angular figura en la lista de CVE. En conjunto, esto demuestra la necesidad de una base de datos de vulnerabilidades que aproveche la actividad de la comunidad de código abierto para sacar a la luz problemas de seguridad relevantes.

🔘Snyk reporta veintiséis vulnerabilidades de seguridad en los proyectos principales de Angular y React que npm audit no incluye en sus informes.

Una nota sobre CVE y las vulnerabilidades de seguridad

Para analizar la postura general de seguridad de cada ecosistema incluido en este informe, examinamos, entre otros factores, las vulnerabilidades de seguridad identificadas en los distintos paquetes pertinentes. Revisamos y analizamos estas vulnerabilidades en el contexto de las vulnerabilidades conocidas y, en ocasiones, las comparamos con ellas.

A las vulnerabilidades conocidas se les asigna un número de identificación en la lista de vulnerabilidades y exposiciones comunes (CVE, por sus siglas en inglés), que mantienen las autoridades de numeración de CVE (CNA). A las CVE se les asignan puntuaciones CVSS que permiten conocer la gravedad de las vulnerabilidades registradas. Obtén más información sobre cómo se puntúa la gravedad de las vulnerabilidades con CVSS aquí.

Postura de seguridad de Angular y React

Seguridad de los ecosistemas de frontend

🔘Angular cuenta con pautas de seguridad claras y accesibles, un contacto de seguridad y una política de divulgación responsable, elementos que faltan en el proyecto React.

🔘jQuery se descargó más de 120 millones de veces en los últimos 12 meses y, según W3Techs, jQuery v1.x se usa en el 84 % de todos los sitios web que utilizan jQuery. Esta versión tiene cuatro vulnerabilidades XSS de gravedad media. De hecho, si no usas jQuery v3.4.0 o posterior —como ocurre con la mayoría de quienes usan jQuery—, estás usando una versión con vulnerabilidades de seguridad.

🔘Angular ofrece una compatibilidad integrada más amplia para la sanitización de datos y la codificación de salida en distintos contextos, como los atributos URL de los elementos HTML de anclaje (o enlaces).

🔘Bootstrap se descargó 79,185,409 veces en los últimos doce meses, pese a tener siete vulnerabilidades de Cross-Site Scripting (XSS). Tres de ellas se divulgaron en 2019. Algunos módulos destacados de la comunidad, como

bootstrap-markdown

tuvieron más de 300,000 descargas en el mismo período, pese a no contar con una corrección de seguridad ni una ruta de actualización para solucionar sus vulnerabilidades XSS.

bootstrap-select

superó los dos millones de descargas y tiene una vulnerabilidad XSS de gravedad alta que el equipo de investigación de Snyk detectó con ayuda de su sistema de inteligencia de amenazas propietario.

🔘React no incluye controles integrados para la sanitización de datos, sino que codifica la salida de forma predeterminada en la mayoría de los casos y deja en manos de los desarrolladores los casos no contemplados, como refs y los atributos URL (estos últimos se abordan en la versión React v16.9.0).

🔘El framework Vue.js se descargó más de 40 millones de veces en los últimos 12 meses y registra

cuatro vulnerabilidades en total en el núcleo de Vue.js

, todas corregidas.

🔘Angular incluye en su servicio HTTP un mecanismo de seguridad integrado para proteger contra vulnerabilidades de Cross-Site Request Forgery (CSRF). Los desarrolladores de React deben abordar estos problemas por su cuenta.


Sigue leyendo Angular vs. React: duelo de seguridad 2019 o descarga el informe completo.

Este informe analiza la seguridad general de cada framework, sus ecosistemas de módulos impulsados por la comunidad y los riesgos de seguridad asociados. A partir de estos datos, ofrece recomendaciones de seguridad prácticas para quienes usan Angular y React, y destaca las mejores prácticas del sector para garantizar que el código sea seguro.

Comienza con Capture the Flag

Aprende a resolver desafíos de Capture the Flag con nuestro taller virtual 101 a pedido.