Github는 설치된 패키지나 해당 종속 항목에서 보안 취약점이 감지되면 정기적으로 경고를 보냅니다. 나는 dependencyabot이 나를 위해 문제를 해결하도록 하려고 노력하곤 했습니다. 그러나 절반의 시간은 나를 위해 생성된 PR을 병합할 수 없었습니다. 결과적으로 위반사항이 그대로 방치되어 좋지 않습니다. 제 경우에는 pnpm을 사용하는데 npm도 마찬가지인 것 같아요.
오늘 Niraj Chauhan의 기사를 보고 터미널을 사용하여 문제를 해결하는 방법을 알게 되었습니다.
단계:
경로 섹션에서 이 문제의 원인을 확인해야 합니다. 내 경우에는 "중첩 종속성"(종속성의 종속성)인 것 같습니다.
pnpm Why NAME_OF_THE_EXTENSION을 실행하여 위 내용을 확인할 수 있습니다. 내 경우에는 첫 번째 취약점에서 실행할 때 다음과 같은 메시지를 받았습니다. pnpm 왜 넷마스크인가
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 파일에서 그렇게 할 수 있습니다:
25/10 편집: 이 Stackoverflow 스레드에 따르면 Github dependencyabot과 pnpm은 모두 동일한 데이터베이스에서 피드를 감사하므로 취약점이 누락되지 않고 dependencyabot 워크플로 대신 이 방식으로 문제를 해결할 수 있습니다. 이런 블로그 게시물도 있습니다.
위 내용은 JS 프로젝트의 패키지 보안 취약점을 수정하는 단계의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!