Skip to main content

Relatório de segurança de frameworks JavaScript 2019

Escrito por
JavaScript Report Feature

30 de outubro de 2019

0 minutos de leitura

Boas-vindas ao relatório segurança de frameworks JavaScript da Snyk, edição 2019.

Neste relatório, analisamos o cenário de segurança dos ecossistemas Angular e React. O objetivo não é de forma alguma entrar em rivalidades que possam existir entre eles sobre qual seria o verdadeiro framework — não os comparamos como frameworks concorrentes. Em vez disso, analisamos cada um como uma alternativa viável de ecossistema de front-end para criar projetos JavaScript, com foco nos riscos de segurança, nas práticas recomendadas de cada um e nas diferenças entre eles.

Recomendamos baixar a versão completa do relatório em formato digital. Também disponibilizamos as seguintes seções gerais como artigos:

Este relatório aborda:

  • as práticas de segurança de cada um dos dois projetos principais: Angular e React

  • o cenário de segurança de cada um dos dois ecossistemas de módulos, com base em uma análise aprofundada das vulnerabilidades presentes em cada ecossistema

  • as práticas de segurança de outras alternativas comuns de frameworks JavaScript de front-end, como Vue.js, Bootstrap e jQuery

  • as diferenças significativas de segurança entre as alternativas, especialmente entre Angular e React

Principais conclusões do relatório de segurança de frameworks JavaScript 2019

Veja a seguir as principais conclusões do relatório.

Segurança dos projetos principais Angular e React

Segurança dos ecossistemas de módulos Angular e React

🔘O Angular contém 23 vulnerabilidades de segurança no projeto legado AngularJS (Angular v1.x).

🔘Os ecossistemas de módulos do React e do Angular apresentam vulnerabilidades de segurança em componentes de bibliotecas de front-end muito populares, com milhões de downloads. Algumas delas ainda não têm correção de segurança disponível.

🔘Não foram identificadas vulnerabilidades de segurança nos componentes principais do framework Angular.

🔘Identificamos módulos maliciosos que afetaram os ecossistemas Angular e React, tentando roubar números de cartão de crédito, senhas e outras informações confidenciais usadas em aplicações web de front-end.

🔘O React tem algumas vulnerabilidades de segurança, que parecem ser encontradas regularmente em suas bibliotecas principais e divulgadas a cada dois anos.

🔘O framework Next.js demonstrou um forte compromisso com a segurança ao corrigir rapidamente as cinco vulnerabilidades encontradas ao longo da existência do projeto, disponibilizando correções em apenas uma semana.

🔘Apenas uma vulnerabilidade no projeto principal do React recebeu um CVE oficial. Nenhuma das vulnerabilidades relatadas no Angular consta na lista de CVEs. Juntas, essas constatações mostram a necessidade de um banco de dados de vulnerabilidades que acompanhe as atividades da comunidade open source para identificar problemas de segurança relevantes.

🔘A Snyk relata 26 vulnerabilidades de segurança nos projetos principais do Angular e do React, que não são identificadas nos relatórios do npm audit.

Uma observação sobre CVEs e vulnerabilidades de segurança

Para investigar a postura geral de segurança de cada ecossistema incluído neste relatório, analisamos, entre outros fatores, as vulnerabilidades de segurança identificadas nos diferentes pacotes relevantes. Analisamos e discutimos essas vulnerabilidades no contexto das vulnerabilidades conhecidas e, às vezes, em comparação com elas.

As vulnerabilidades conhecidas recebem um número de identificação na lista de Vulnerabilidades e Exposições Comuns (CVE), mantida pelas Autoridades de Numeração de CVEs (CNAs). Os CVEs recebem pontuações CVSS, que ajudam a entender a gravidade das vulnerabilidades listadas. Saiba mais sobre como as gravidades das vulnerabilidades são pontuadas com o CVSS.

Postura de segurança do Angular e do React

Segurança dos ecossistemas de front-end

🔘O Angular oferece diretrizes de segurança claras e acessíveis, um contato de segurança e uma política de divulgação responsável — recursos que faltam no projeto React.

🔘O jQuery teve mais de 120 milhões de downloads nos últimos 12 meses e, segundo a W3Techs, o jQuery v1.x é usado em 84% dos sites que utilizam jQuery. Essa versão apresenta quatro vulnerabilidades XSS de gravidade média. Na prática, se você não usa o jQuery v3.4.0 ou posterior — o que vale para a maioria dos usuários do jQuery —, está usando uma versão com vulnerabilidades de segurança.

🔘O Angular oferece suporte integrado mais amplo à sanitização de dados e à codificação de saída em diferentes contextos, como atributos URL em elementos HTML de âncora (ou link).

🔘O Bootstrap teve 79.185.409 downloads nos últimos 12 meses, embora contenha sete vulnerabilidades de Cross-Site Scripting (XSS). Três delas foram divulgadas em 2019. Módulos populares da comunidade, como

bootstrap-markdown

tiveram mais de 300 mil downloads no mesmo período, apesar de não oferecerem correção de segurança nem caminho de atualização para suas vulnerabilidades XSS.

bootstrap-select

teve mais de dois milhões de downloads e apresenta uma vulnerabilidade XSS de alta gravidade, identificada pela equipe de pesquisa da Snyk com a ajuda de seu sistema proprietário de inteligência contra ameaças.

🔘O React não tem controles integrados para sanitização de dados, mas codifica a saída por padrão na maioria dos casos e deixa a cargo dos desenvolvedores tratar situações não cobertas, como refs e atributos URL (estes últimos foram abordados na versão React v16.9.0).

🔘O framework Vue.js teve mais de 40 milhões de downloads nos últimos 12 meses e registra

quatro vulnerabilidades no total no núcleo do Vue.js

, todas corrigidas.

🔘O Angular inclui um mecanismo de segurança integrado em seu serviço HTTP para proteger contra vulnerabilidades de Cross-Site Request Forgery (CSRF). Os desenvolvedores React precisam tratar esses problemas por conta própria.


Continue lendo Angular vs. React: disputa de segurança 2019 ou baixe o relatório completo.

Este relatório analisa a segurança geral de cada framework, seus ecossistemas de módulos impulsionados pela comunidade e os riscos de segurança associados. Com base nessas informações, oferece recomendações práticas de segurança para usuários do Angular e do React, destacando as melhores práticas adotadas no setor para garantir um código seguro.

Comece a jogar Capture the Flag

Aprenda a resolver desafios de Capture the Flag assistindo à gravação sob demanda do nosso workshop virtual introdutório.