>웹 프론트엔드 >JS 튜토리얼 >JS 프로젝트의 패키지 보안 취약점을 수정하는 단계

JS 프로젝트의 패키지 보안 취약점을 수정하는 단계

Linda Hamilton
Linda Hamilton원래의
2024-10-26 07:51:03280검색

Github는 설치된 패키지나 해당 종속 항목에서 보안 취약점이 감지되면 정기적으로 경고를 보냅니다. 나는 dependencyabot이 나를 위해 문제를 해결하도록 하려고 노력하곤 했습니다. 그러나 절반의 시간은 나를 위해 생성된 PR을 병합할 수 없었습니다. 결과적으로 위반사항이 그대로 방치되어 좋지 않습니다. 제 경우에는 pnpm을 사용하는데 npm도 마찬가지인 것 같아요.

오늘 Niraj Chauhan의 기사를 보고 터미널을 사용하여 문제를 해결하는 방법을 알게 되었습니다.

단계:

  • Github에서 dependencyabot 알림을 받습니다:

Steps to fix package security vulnerabilities in your JS project

  • 위 스크린샷의 패키지 이름이 기사의 나머지 부분과 일치하지 않는 것으로 알고 있습니다. 하지만 이는 단계에 관한 것이므로 요점을 알 수 있습니다.
  • 머신에서 프로젝트로 이동하여 pnpm audit를 실행하세요. 취약점에 대한 세부정보를 확인해야 합니다.

Steps to fix package security vulnerabilities in your JS project

  • 경로 섹션에서 이 문제의 원인을 확인해야 합니다. 내 경우에는 "중첩 종속성"(종속성의 종속성)인 것 같습니다.

  • pnpm Why NAME_OF_THE_EXTENSION을 실행하여 위 내용을 확인할 수 있습니다. 내 경우에는 첫 번째 취약점에서 실행할 때 다음과 같은 메시지를 받았습니다. pnpm 왜 넷마스크인가

Steps to fix package security vulnerabilities in your JS project

  • pnpm audit fix를 실행해 볼 수는 있지만 제겐 전혀 효과가 없었습니다.

  • package.json을 열고 이 문제를 일으키는 패키지 버전을 업데이트합니다. 제 경우에는 mailgun-js입니다. pnpm view NAME_OF_THE_PACKAGE 버전을 실행하여 모든 버전을 확인하거나 pnpm info NAME_PACKAGE 버전을 실행하여 최신 안정 버전을 확인할 수 있습니다.

다른 경우 package.json 파일을 필요한 버전으로 편집하고 pnpm i를 다시 실행하세요. 그런 다음 pnpm 감사를 다시 실행하여 취약점이 사라졌는지 확인합니다. 아직 남아 있다면 다시 시작하거나 계속해서 읽어보세요.

  • 저의 경우 최신 안정 버전이 제가 설치한 버전이라 다른 접근이 필요합니다.

  • pnpm이 중첩 종속성의 특정 버전을 설치하도록 강제할 수 있습니다. pnpm 문서는 여기에 있으며 package.json 파일에서 그렇게 할 수 있습니다:

Steps to fix package security vulnerabilities in your JS project

  • 재정의하려는 버전에 오류가 있어서 package.json 파일에 최신 버전을 썼습니다.

Steps to fix package security vulnerabilities in your JS project

Steps to fix package security vulnerabilities in your JS project

  • pnpm i를 실행하면 행복한 날이 올 것입니다. 해당 패키지의 취약점은 더 이상 존재하지 않습니다.

25/10 편집: 이 Stackoverflow 스레드에 따르면 Github dependencyabot과 pnpm은 모두 동일한 데이터베이스에서 피드를 감사하므로 취약점이 누락되지 않고 dependencyabot 워크플로 대신 이 방식으로 문제를 해결할 수 있습니다. 이런 블로그 게시물도 있습니다.

위 내용은 JS 프로젝트의 패키지 보안 취약점을 수정하는 단계의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.