Se você trabalha com desenvolvimento de projetos que precisam do gerenciados de pacotes do node, já deve ter se deparado com uma mensagem como a mensagem abaixo nos seus projetos:

vulnerabilidades npm

Inicialmente, uma mensagem como essa, mostrando 24 vulnerabilidades pode assustar, porém será mesmo que precisamos nos preocupar com todas elas? É o que vamos descobrir neste artigo!

O que são as vulnerabilidades?

As vulnerabilidades que aparecem após a instalação de pacotes são referentes a vulnerabilidades de segurança das dependências dos projetos. Com o passar do tempo, é comum vulnerabilidades apareçam, já que quanto mais tempo um pacote está no ar, mais tempo existe para que as pessoas explorem este pacote e encontrem vulnerabilidades neles.

Estas vulnerabilidades não impactam a funcionalidade do projeto, ou seja, as vulnerabilidades não vão compremeter a compilação e a execução do seu código. No entanto, as vulnerabilidades ainda estarão lá e eventualmente alguém mal intencionado pode explorá-las.

A abordagem aqui então é fazer o update das dependências, caso isso seja indispensável para o seu projeto. E porquê não fazer o update das dependências sempre? A solução que o npm sugere para corrigir as estes problemas geralmente é a atualização de um pacote, ou de vários pacotes. No entanto, isso pode causar problemas de compatibilidade entre o código que você escreveu e a versão atualizada do pacote instalado. Se você estiver seguindo um tutorial, é possível que versões diferentes de um pacote tenham comportamentos diferentes. Sendo assim, é possível que de versões mais atuais do pacote quebrem a aplicação.

Além disso, as vulnerabilidades encontradas pelo npm quase nunca estão nos pacotes que você instalou, mas em dependências destes e fazer a atualização destas dependências sem atualizar o pacote em si pode também ser problemático.

Sendo assim, a atualização pode ser perigosa em diferentes cenários.

Como atualizar as dependências

Agora, você já está ciente do que são as vulnerabilidades e o que significa atualizá-las e mesmo assim você decidiu fazer a atualização das dependências. Como fazer?

Bom, o primeiro passo é rodar o comando npm audit para ter mais informações acerca das vulnerabilidades que o gerenciador de pacotes encontrou.

Algumas das vulnerabilidades mostrarão um aviso como o mostrado abaixo, dizendo que existe um fix available(correção disponível) através do comando npm audit fix.

vulnerabilidades npm

Enquanto outros mostrarão que existe uma correção disponível através do comando npm audit fix —force.

vulnerabilidades npm

Aqueles updates que podem ser feitos com o comando npm audit fix costumam ser seguros já que serão feitos respeitando as regras de update de versão especificadas no arquivo package.json. Já os updates que podem ser feitos com o comando npm audit fix —force trarão updates que estão fora do intervalo de versões especificado no package.json, portanto é uma boa prática atualizá-los aos poucos de modo que você consiga identificar possíveis incompatibilidades e possa corrigí-las.

Veja também: