Cli: [PERGUNTA] --ignore-scripts apenas para segurança?

Criado em 29 nov. 2019  ·  4Comentários  ·  Fonte: npm/cli

Muitos lugares recomendam configurar ignore-scripts para a configuração global para fins de segurança.
Isso evita que pacotes de terceiros executem código arbitrário.

O problema é que a configuração disso resultou em nenhum script em execução, incluindo da execução do npm ...
Também não vejo avisos ao executar o npm run ... com ignore-scripts habilitado.

Existe alguma maneira de ignorar scripts puramente por questões de segurança?

Question

Todos 4 comentários

Como o npm diferencia entre scripts seguros e inseguros?

Se pudesse fazer isso, por que uma configuração seria necessária para ignorar as inseguras?

Não diferenciaria entre scripts seguros e inseguros.
Isso simplesmente permitiria scripts ao usar um comando npm no módulo superior.
Como o proprietário não é um terceiro, pode-se presumir que ele é confiável.

Te peguei, isso faz sentido. Eu nunca defini isso como uma configuração de configuração global, mas quebrar npm run teria sido muito frustrante.

Eu defini ignore-scripts como true e fiquei desapontado ao descobrir que o npm start em meu projeto parou de funcionar totalmente sem nenhuma saída.

Eu gostaria de segurança de ignore-scripts, especificamente para desabilitar scripts de pós-instalação, mas ser capaz de executar meus próprios scripts e scripts de terceiros, apenas explicitamente com npm start ou npm run. Ter que adicionar --ignore-scripts toda vez que eu quiser adicionar um pacote é bastante frágil porque basta esquecer apenas uma vez e você pode ser silenciosamente comprometido por uma dependência profundamente oculta de terceiros.

Em geral, acredito fortemente que o comportamento padrão do npm cli é perigoso e precisa ser alterado de uma forma ou de outra. Por exemplo, o npm pode me avisar antes de executar qualquer script, a menos que seja explicitamente solicitado ou incluído na lista de permissões.

Meu empregador não está disposto a introduzir o npm na pilha com o comportamento atual, então minha única opção agora parece depender de definir o sinalizador ignore-scripts em cada estação de trabalho.

Além disso, gostaria de observar que estou ciente de que adicionar uma dependência tem consequências de segurança mais amplas do que os scripts, mas os scripts, em minha opinião, são particularmente perigosos por alguns motivos. Ter um pacote malicioso em seu projeto é tão ruim quanto parece, mas pelo menos pode haver mais algum tempo antes que ele execute sua carga útil, então há uma pequena esperança de que possa ser detectado a tempo. Além disso, os desenvolvedores são mais propensos a ver uma busca extra em devtools ou algo assim ao depurar seu código em comparação com a carga em execução diretamente em seus computadores e cobrindo seus rastros. Um único projeto com um pacote malicioso pode comprometer o IP de toda a empresa, nem mesmo relacionado ao projeto. Pode ser difícil identificar a origem do problema em uma violação ou até mesmo detectar a existência de uma violação.

Desculpe se estou pegando carona neste problema específico com meu estouro de pensamento paranóico, mas acho que os mantenedores do npm e a comunidade deveriam ter uma conversa séria sobre esse assunto. Possivelmente comece a pensar em como o JavaScript e o npm se encaixam em coisas como a Bytecode Alliance .

Esta página foi útil?
0 / 5 - 0 avaliações