¿Hay métodos de verificación integrados para garantizar que los paquetes contengan el código correcto? ¿Utilizan un hash de algún tipo?
Según npm número # 6886 , existe un sistema para validar el contenido de los paquetes mediante cualquier suma de comprobación o sistema de hash.
Cita del usuario de GitHub othiym23 :
npm ha incluido la validación de los paquetes de archivos, a través de su SHA-1 Digestivos, desde prácticamente el principio. Vale la pena señalar, Sin embargo, que esto se pretende como una medida de verificación para garantizar que el paquete tarball se ha descargado correctamente del registro; no está destinado a proteger contra ataques de sustitución.
Entonces, mientras se verifica que los datos son los MISMOS que provienen del servidor npm, no hay forma de validar si el código que se entrega desde el servidor es el código que espera (por ejemplo, no hay un sistema implementado para validando el paquete con su propio hash de confianza).
Parece que hay algunas comprobaciones de validación en el código fuente, sin embargo , la fuente también revela que NO hay validación de integridad para las recuperaciones de paquetes npm basadas en el repositorio Git.
Puede encontrar la lógica para esta condición en la línea ~ 120 en este archivo .