Cli: [PREGUNTA] - ¿Ignorar los scripts solo por motivos de seguridad?

Creado en 29 nov. 2019  ·  4Comentarios  ·  Fuente: npm/cli

Muchos lugares recomiendan establecer ignorar-scripts para la configuración global por motivos de seguridad.
Esto es para evitar que los paquetes de terceros ejecuten código arbitrario.

El problema es que configurar esto ha dado como resultado que no se ejecuten scripts, incluso desde npm run ...
Tampoco veo advertencias al ejecutar npm run ... con ignorar scripts habilitados.

¿Hay alguna forma de ignorar los scripts únicamente por motivos de seguridad?

Question

Todos 4 comentarios

¿Cómo diferenciaría npm entre scripts seguros e inseguros?

Si pudiera hacer eso, ¿por qué se requeriría una configuración para ignorar los inseguros?

No diferenciaría entre scripts seguros e inseguros.
Simplemente permitiría scripts cuando se usa un comando npm en el módulo superior.
Dado que el propietario no es un tercero, se puede asumir que es de confianza.

Entendido, eso tiene sentido. Nunca lo configuré como una configuración global, pero romper npm run hubiera sido bastante frustrante.

Establecí ignore-scripts en verdadero y me decepcionó descubrir que npm start en mi proyecto dejó de funcionar por completo sin ningún resultado.

Me gustaría tener seguridad de ignorar los scripts, específicamente para deshabilitar los scripts posteriores a la instalación, pero poder ejecutar mis propios scripts y scripts de terceros, solo explícitamente con npm start o npm run. Tener que agregar --ignore-scripts cada vez que quiero agregar un paquete es bastante frágil porque todo lo que se necesita es olvidarlo solo una vez y puede verse comprometido silenciosamente por una dependencia de terceros profundamente oculta.

En general, creo firmemente que el comportamiento predeterminado de npm cli es peligroso y debe cambiarse de una forma u otra. Por ejemplo, npm podría preguntarme antes de ejecutar cualquier script, a menos que se solicite explícitamente o se incluya en la lista blanca.

Mi empleador no está dispuesto a introducir npm en la pila con el comportamiento actual, por lo que mi única opción en este momento parece depender de establecer el indicador de ignorar scripts en cada estación de trabajo.

Además, me gustaría señalar que soy consciente de que agregar una dependencia tiene consecuencias de seguridad más amplias que los scripts, pero los scripts, en mi opinión, son particularmente peligrosos por algunas razones. Tener un paquete malicioso en su proyecto es tan malo como parece, pero al menos puede pasar un poco más de tiempo antes de que pueda ejecutar su carga útil, por lo que hay pocas esperanzas de que se pueda detectar a tiempo. Además, es más probable que los desarrolladores vean una recuperación adicional en devtools o algo así mientras depuran su código en comparación con la carga útil que se ejecuta directamente en sus computadoras y cubre sus rastros. Un solo proyecto con un paquete malicioso podría potencialmente comprometer la IP de toda la empresa ni siquiera relacionada con el proyecto. Podría ser difícil identificar una brecha en el origen del problema o incluso detectar que existe una brecha.

Lo siento si estoy aprovechando este problema específico con mi pensamiento paranoico desbordado, pero creo que los mantenedores de npm y la comunidad deberían tener una conversación seria sobre este tema. Posiblemente comience a pensar en cómo JavaScript y npm encajan en cosas como Bytecode Alliance .

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

jaydenseric picture jaydenseric  ·  3Comentarios

ahuglajbclajep picture ahuglajbclajep  ·  3Comentarios

theADAMJR picture theADAMJR  ·  3Comentarios

darcyclarke picture darcyclarke  ·  3Comentarios

Cohen-Carlisle picture Cohen-Carlisle  ·  4Comentarios