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

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

Linda Hamilton
풀어 주다: 2024-10-26 07:51:03
원래의
303명이 탐색했습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿