No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Seguridad y soluci贸n de problemas

10/15
Recursos

La seguridad de tu proyecto puede ser vulnerada por paquetes desactualizados. Al momento de instalar tus paquetes con el comando npm install muestra una serie de advertencias (NPM WARN) de las dependencias desactualizadas.

Auditar tus dependencias

El comando npm audit muestra una descripci贸n de las dependencias instaladas. Si se encuentran vulnerabilidades, se calcular谩 el impacto al proyecto.

Si se requiere un informe m谩s detallado en formato JSON (JavaScript Object Notation), utiliza el comando npm audit --json.

El comando npm audit fix proporciona una actualizaci贸n de los paquetes, similar al comando npm update <paquete>. El comando npm audit fix --force proporciona una actualizaci贸n de los subpaquetes de cada paquete, en todos sus niveles de profundidad.

Si el problema persiste, es necesario actualizar el paquete a su 煤ltima versi贸n.

bash $ npm install <paquete>@latest

Soluci贸n de problemas

Cuando est茅s desarrollando un proyecto con NPM, puede que generes errores que no permitan seguir con tu trabajo. Saber manejar los errores es fundamental para solucionarlos y seguir con tus tareas (y no entrar en p谩nico). Alguno de estos errores pueden ser:

  • Errores en la configuraci贸n del archivo package.json
  • Errores de dependencias en node_modules
  • Errores del sistema operativo
  • Configuraci贸n err贸nea de Git o GitHub
  • Errores de escritura (typos)
  • Errores que no est茅n ligados directamente a NPM

Error de dependencias en node_modules

Existen situaciones en las que instalas una dependencia con una versi贸n que no corresponde a la deseada. Esto ocurre porque NPM guarda en el cach茅 una versi贸n previamente instalada de un paquete, esto para mejorar los tiempos de instalaci贸n.

En esta situaci贸n, puedes utilizar los siguientes comandos, el primero para borrar el cach茅 de NPM y el segundo para verificar si est谩n eliminados correctamente.

bash $ npm cache clean --force $ npm cache verify

Contribuci贸n creada por Andr茅s Guano (Platzi Contributor).

Aportes 25

Preguntas 2

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Me ha gustado mucho la clase, en especial porque he visto comandos que me topo en mi d铆a a d铆a desarrollando. Les dejo mis apuntes de los principales comandos de la clase:
npm audit --> Audita las dependencias que tenemos instaladas en busca de vulnerabilidades.
npm audit fix --> Audita e intenta arreglar las vulnerabilidades de nuestras dependencias.
npm audit --json --> Muestra los resultados de la auditor铆a a manera m谩s profunda en formato json.
npm audit fix --force --> Corrige los problemas encontrados en las librer铆as instalando otras dependencias por debajo si es necesario.

Comando Phoenix

馃敟 Puede que existan valores corruptos o una instalaci贸n incorrecta de una dependencia, deber谩s eliminar el directorio de node_modules y despu茅s ejecutar el comando npm install para instalar correctamente los paquetes.
.
Puedes utilizar el siguiente comando phoenix en el package.json para evitar escribir demasiado cada vez que lo necesites. Lo aprend铆 de Midudev. 馃檶

// package.json
{
 "scripts": {
   "phoenix": "rm -f package-lock.json && rm -rf ./node_modules && npm install --no-fund --no-audit"
 }
}

Es gracioso que comenc茅 con 4 vulnerabilidades bajas, ejecute npm audit fix y npm audit fix --force y termine con 7 vulnerabilidades y 2 altas jajaja

Hasta el momento me ha parecido un excelente curso. Muy buen profesor. Siempre usaba estos comandos pero no sabia su verdadero funcionamiento, he aprendido much铆simo. 100% recomendado.

Seguridad y soluci贸n de problemas

Muchas veces algunas dependencias pueden llegar a comprometer nuestro proyecto y podemos verlos al momento de hacer el npm install, si nos muestra vulnerabilidades

  • Moderates: pueden dejarse pasar, pues no tendr谩n mayor efecto.
  • High: podemos considerarlas, esto puede volverse cr铆tico.
  • Critical: son las que si o si hay que reparar.

  • npm audit veremos las vulnerabilidades, lo que est谩 sucediendo y nos entrega una serie de informaci贸n para tomar decisiones. Si continuaremos utilizando la librer铆a o si la actualizamos.

  • npm audit fix puede ser usado si nos indica que est谩n disponibles reparaciones de dependencias. Entonces a parte de ejecutar la auditoria, puede hacer una reparaci贸n.

  • npm audit --json mostrar谩 la informaci贸n de forma mas detallada en un formato json para analizarla mejor.

  • npm audit fix --force es sugerido para implementar la reparaci贸n de las dem谩s vulnerabilidades y por fin ser reparadas.

  • npm install nombre@latest se usa para actualizar los paquetes a su 煤ltima versi贸n para que no est茅 causando vulnerabilidades.

Seguridad y Soluci贸n de Problemas

驴Como Auditar las Vulnerabilidades?

Para auditar o revisar la vulnerebilidades de nuestras dependecias podemos utilizar

npm audit

Pero tambien podemos utilizar el siguiente comando para mostrar la auditoria de forma mas detallada a travez de un formano .JSON

npm audit --json

驴Como Resolver las vulnerabilidades?

Para resolver parte de las vulnerabilidades podemos utilizar el siguiente comando.

npm audit fix

Si despues de Ejecutar el anterior comando no fue suficiente se puede forzar la instalaci贸n de dependecias que ayudaran a eliminar estas vulnerabilidades o que correran por debajo de otras dependecias.

npm audit fix --force

鈥硷笍 Puede pasar que al correr estos comandos no se arreglen las vulnerabilidades, para este caso debes correr npm list y actualizar las dependencias manualmente

Una Alternativa: npm-check-updates


  • npm audit fix solo actualiza los paquetes que tienen vulnerabilidades. Pero si queremos actualizar los paquetes aunque no tengan vulnerabilidades?

  • Cuando usamos npm outdated, muestra todos los paquetes que tienen nuevas versiones, incluyendo versiones que podr铆an causar conflictos.

  • Si usamos npm update, se van a actualizar nuestros paquetes seg煤n las reglas de versionado sem谩ntico o SemVer rules que hemos especificado en el package.json. Pero si se encuentra una actualizaci贸n que rompe algo, no lo va a instalar.

  • Para ser m谩s cuidadosos con todo este proceso existe un paquete llamado npm-check-updates (Documentaci贸n) que verifica nuevas actualizaciones y hasta puede encontrar posibles breaks sin realmente modificar el proyecto.

  • Si lleva el flag -u va a modificar el package.json y luego necesita que se corra npm install para actualizar realmente las dependencias.

馃攼 Archivos del Proyecto 馃攼


Pasos 馃搶

  • 鈥 En la terminal estar dentro de la carpeta del proyecto react-base, ejecutar:
npm audit

  • 鈥 Si se quiere ver el informe a un nivel mas detallado, tipo objeto, se ejecuta:
npm audit --json

  • 鈥 Si a煤n siguen apareciendo vulnerabilidades, se ejecuta:
npm audit fix

  • 鈥 Si a煤n siguen apareciendo vulnerabilidades, se ejecuta:
npm audit fix --force

  • 鈥 Si a煤n sigue apareciendo vulnerabilidades, se puede tratar de actualizar los paquetes a los que se refieren las advertencias, por ejemplo con web-pack, se busca cu谩les paquetes se van actualizar, se listan los paquetes con:
npm list

  • 鈥 Aparece para web-pack:
鈹溾攢鈹 webpack-cli@4.7.2
鈹溾攢鈹 webpack-dev-server@3.11.3
鈹斺攢鈹 webpack@5.83.1

  • 鈥 Se instala c/u a la 煤ltima versi贸n, de 茅sta forma:
npm install webpack-cli@latest
npm install webpack-dev-server@latest
npm install webpack@latest

  • 鈥 Se vuelve a ejecutar: npm list y npm audit

  • 鈥 No deben salir conflictos:

found 0 vulnerabilities

10/15 Curso de NPM: Seguridad y soluci贸n de problemas

La seguridad y la soluci贸n de problemas en proyectos de Node.js gestionados con NPM (Node Package Manager) son esenciales para mantener la estabilidad y la integridad de tu aplicaci贸n. Aqu铆 tienes algunas pr谩cticas clave para abordar estos aspectos en tu proyecto:


Seguridad:

  1. Actualizaci贸n de dependencias: Como se mencion贸 anteriormente, mantener tus dependencias actualizadas es fundamental para abordar vulnerabilidades de seguridad conocidas. Ejecuta npm outdated para verificar las actualizaciones disponibles y aplica las correcciones de seguridad mediante npm update.

  2. Auditor铆a de seguridad: NPM proporciona una herramienta de auditor铆a de seguridad que puedes usar para identificar y solucionar vulnerabilidades conocidas en tus dependencias. Ejecuta el siguiente comando para realizar una auditor铆a de seguridad:

    npm audit
    

    Luego, sigue las recomendaciones para resolver las vulnerabilidades.

  3. Paquetes verificados y confiables: Prefiere utilizar paquetes populares y ampliamente confiables con una base de usuarios activa y una comunidad que supervise la seguridad.

  4. Control de acceso: Limita el acceso a tu proyecto en NPM y establece permisos adecuados para colaboradores. Solo las personas de confianza deben tener acceso de escritura a tu proyecto.

  5. Verificaci贸n de firmas: Algunos paquetes de NPM son firmados digitalmente. Puedes verificar la firma de un paquete antes de instalarlo para garantizar su autenticidad.



Soluci贸n de problemas:

  1. Registro y seguimiento de errores: Utiliza herramientas de registro y seguimiento de errores, como Winston, Bunyan o herramientas de registro en la nube, para rastrear y registrar errores en tu aplicaci贸n.

  2. Depuraci贸n: Aprovecha las capacidades de depuraci贸n de Node.js y las extensiones de depuraci贸n en tu entorno de desarrollo, como Visual Studio Code, para identificar y solucionar problemas en tu c贸digo.

  3. Pruebas automatizadas: Implementa pruebas automatizadas utilizando herramientas como Mocha, Jest o Jasmine para identificar y corregir problemas en tu c贸digo antes de que lleguen a producci贸n.

  4. Herramientas de rendimiento: Utiliza herramientas de rendimiento como New Relic o PM2 para analizar el rendimiento de tu aplicaci贸n en producci贸n y resolver cuellos de botella.

  5. Monitorizaci贸n en producci贸n: Establece sistemas de monitorizaci贸n en producci贸n para supervisar el estado y el rendimiento de tu aplicaci贸n en tiempo real. Herramientas como Prometheus y Grafana son 煤tiles para esta tarea.

  6. Gesti贸n de dependencias: Aseg煤rate de gestionar adecuadamente las dependencias de tu proyecto en el archivo package.json. Mant茅n un registro claro de las versiones de las dependencias para evitar problemas de incompatibilidad.

  7. Documentaci贸n y gu铆as de soluci贸n de problemas: Proporciona documentaci贸n clara para desarrolladores que incluya informaci贸n sobre c贸mo configurar el entorno de desarrollo, solucionar problemas comunes y manejar casos excepcionales.

  8. Redes de apoyo y comunidad: 脷nete a comunidades en l铆nea, como el foro de NPM, Stack Overflow y grupos de desarrollo en redes sociales, donde puedes obtener ayuda y consejos de otros desarrolladores.

  9. Backups y restauraci贸n: Implementa estrategias de respaldo y recuperaci贸n para proteger tus datos y sistemas en caso de fallos graves.


La seguridad y la soluci贸n de problemas son pr谩cticas continuas en el desarrollo de software. Mant茅n tus sistemas y dependencias actualizados, sigue buenas pr谩cticas de codificaci贸n y permanece atento a las noticias de seguridad y a las actualizaciones de las dependencias para mantener tu proyecto seguro y en funcionamiento.

Espero sea de utilidad. 馃懆鈥嶐煉

Comparto una herramienta que permite estar verificando este tema de las vulnerabilidades y paquetes desactualizados en los proyectos (hacer la integraci贸n con la herramienta y recibir los informes al correo): https://snyk.io

B谩sicamente lo que nos da a entender el profe Oscar, es que una vez que ejecutamos todas las herramientas NPM que nos permiten auditar y fixear aquellas vulnerabilidades que nos saltan por consola, empezar a buscar aquellas m谩s especificas que nos podr铆an estar causando problemas鈥
Como lo hace en el ejemplo de la clase con WEBPACK

Me est谩 explotando la cabeza jajajajaja tanta informaci贸n馃ぃ馃ぃ

Excelente clase, muy 煤til este curso

Cuando corr铆 el audit fix continuaba dando error, pero al correr audit fix --force solucion贸 todas las vulnerabilidades!!
Muy buena clase y excelente curso!!! Todo es bienvenido para no parar de aprender!!!

Genial el curso!! Muy bueno que lo hayan actualizado

npm audit

npm聽tiene una miriada de paquetes disponibles lo que es una gran caracter铆stica indicando lo saludable del ecosistema que es capaz de generar nuevas librer铆as a gran velocidad, pero tambi茅n puede ser un problema.聽npm聽puede albergar paquetes maliciosos o con problema de seguridad.

La organizaci贸n tr谩s聽npm聽mantiene una lista de agujeros de seguridad y puedes utilizar este comando para revisar tus dependencias.

npm audit聽te entregar谩 informaci贸n de las vulnerabilidades encontradas en tus dependencias junto con una breve descripci贸n de como resolverlo indicando la versi贸n que corrige el defecto.

Excelente clase, me ha dejado mucho mas tranquilo a la hora de poder manejar errores

Cr铆ticamente lo tienes que resolver
No te lo puedes pasar por Alto
y moderamente los puedes ignorar (?)

Es como arreglar un cubo de rubix en sus ultimos pasos:
馃煣馃煣馃煣馃煣
馃煩馃煩馃煩馃煩
馃煥馃煥馃煥馃煥
猬溾瑴猬溾瑴

a mi aparecieron errores criticos al querer actualizar webpack-cli, pero actualizando babel, se soluciono

hola, deberia haber alguna clase que hable sobre esta situacion:
semver <7.5.2
Severity: moderate
semver vulnerable to Regular Expression Denial of Service - https://github.com/advisories/GHSA-c2qf-rxjj-qqgw
No fix available

Fix dependencies

Quiz谩s pueda servir escribir el siguiente c贸digo;

npm update

Tambi茅n recordar que si quieres instalar alguna versi贸n espec铆fica utilizas el comando npm install package-name@version