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:
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
.
Enquanto outros mostrarão que existe uma correção disponível através do comando npm audit fix —force.
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.