programing

package-lock.json의 취약한 npm 패키지를 package.json에 나열되지 않은 package-lock.json에서 수정하려면 어떻게 해야 합니까?

newstyles 2023. 9. 16. 08:43

package-lock.json의 취약한 npm 패키지를 package.json에 나열되지 않은 package-lock.json에서 수정하려면 어떻게 해야 합니까?

Github은 package-lock.json 파일의 의존성이 취약하고 구식이라고 말합니다.문제는 만약 제가 그렇게 한다면.npm install아니면npm update다. 즉, "package-lock.json" 파일입니다.

나는 이것에 대해 구글 검색을 많이 했고, 파일을 삭제하고 했습니다.npm install.

누군가가 이 문제를 해결하는데 도움을 줄 수 있다면 대단히 감사하겠습니다.문제의 소포는 Hoek인데, 제 소포에는 제가 실제로 가지고 있지 않습니다.json 파일.

Hoek는 당신의 종속성 중 하나(따라서 당신이 당신의 패키지에 가지고 있는 패키지)인 것처럼 들립니다.json이 자체 패키지에서 요구하고 있습니다.json).

이미 프로젝트 종속성을 삭제/재설치 및 업데이트를 시도했지만 실패했기 때문에 해당 패키지 종속성에 명시적 버전 또는 최대 버전이 지정된 것 같습니다.

소포를 보지도 않고요.json 각 의존 관계에 대해 업데이트를 강제하는 방법에 대해 더 이상 조언하기는 어려울 것입니다.

편집: 어떤 패키지가 어떤 종속성을 사용하고 있는지 식별하는 데 도움이 되도록 NPM의ls명령: https://docs.npmjs.com/cli/ls

를 들어, Hoek를 다음과 같이 .npm ls hoek

편집 2: Ulysse BN이 정확히 지적한 것처럼 NPM 버전 6 이상이 있으면 사용할 수 있습니다.npm audit fixNPM에게 취약점 수정을 요청합니다.

편집 3: 이 글을 읽는 분들은 아래의 JBallin의 답변도 확인하시기 바랍니다.제가 여기서 제공한 정보에 대해 더 자세히 설명하고, OP의 질문을 더 잘 다루는 보다 체계적인 답변이라고 생각합니다.그러나 빠른 수정을 원하는 경우에는 이 답변으로 충분합니다.

TLDR을 사용하여 : 을 하여 을 npm i $PARENT_PKG_NAME.


메모

종속성을 업데이트할 때 CHANGELOG에 변경 사항이 있는지 검토해야 합니다.

진단.

npm audit패키지를 e package-lock.json 파일을 실행해야 ).npm i(해당되는 경우)의 종속성인 패키지와 함께.사용할 수도 있음을 참고합니다.npm ls $CHILD_PKG_NAME부모 의존성을 확인할 수 있습니다.

빠른 수정 시도

npm audit fix그리고.npm audit fix --force시도해 볼 가치가 있지만 때로는 수동으로 수정해야 하는 경우도 있습니다(아래 참조).

수동 수정

커밋을 수). 로 이 했을 하여 을 하거나 만 하여 할 가 을 할 하여 만 하거나 따라서 실행할 수 있습니다.npm i $PARENT_PKG_NAME @$NEW_VERSION그리고 당신의 package-lock.json을 업데이트 할 것입니다.

부모가 취약성을 수정하지 않은 경우

유지 관리자가 반응이 없는 것 같으면 동일한 작업을 수행하는 대체 패키지를 사용하거나 패키지를 위조하여 직접 취약성을 업데이트하는 것을 고려해 볼 수 있습니다.

수정 확인

를 하여 할 했는지 할 를 했는지 하여 npm audit취약성이 나타나지 않도록 해야 합니다.변경 사항을 커밋하고 GitHub로 푸시하고 알림/알림을 새로 고치면 사라집니다!

1단계: 피어 종속성 설치

npm i --legacy-peer-deps

2단계: 수동으로 패키지 변경

편집 package-lock.json수동으로 취약한 패키지 버전을 수정된 버전으로 업데이트합니다.

npm ci

에 따라 패키지가 설치됩니다.package-lock.jsonpackage.json 둘째로

3단계: 다시 컨트롤하기

달려.

npm audit fix

제대로 된 건지 확인해 보려고요도움이 되지 않으면 다른 주어진 해결책을 사용합니다.

여기에 자세한 정보:

https://blog.npmjs.org/post/171556855892/introducing-npm-ci-for-faster-more-reliable

또는 여기: https://docs.npmjs.com/auditing-package-dependencies-for-security-vulnerabilities

npm@6 이상이면 보안 문제에 사용할 수 있습니다.

용도:

npm i hoke

npm에서 hoek의 최신 버전을 설치하고 당신의 package.lock.json이 업데이트 될 것입니다.

취약한 npm 패키지를 확인하려면 다음 명령만 사용합니다.

npm audit

취약한 npm 패키지를 수정하려면 package-lock.json도 수정하는 다음 명령만 사용하면 됩니다.

npm audit fix

이 문제가 발생하여 npm을 실행 중인 서버에 이전 버전의 npm on it-package-lock.json이 최신 버전에서만 지원되기 때문이라는 것을 알게 되었습니다.

( 이후, NPM v8.3.0 (2021-12-09)package.json의 .overrides의존 관계에 대한 취약성을 수정하는 데 도움이 될 수도 있습니다.손대지 않고package-lock.json파일.파일.

{
  "overrides": {
    "foo": "1.0.0"
  }
}

문서: https://docs.npmjs.com/cli/v9/configuring-npm/package-json#overrides

참고: 재정의하려는 패키지에 변경사항이 있는지 확인하는 것을 잊지 마십시오.

이것을 시도해보셨나요: 당신의 프로젝트 루트로 이동하고, 삭제합니다.package-lock.json파일,node_modules그리고..cache폴더, 그런 다음npm install.

새 종속성을 설치한 후 다음 명령을 실행하여 package-lock.json 파일을 업데이트합니다.

npm update package-lock.json

언급URL : https://stackoverflow.com/questions/50328324/how-do-i-fix-a-vulnerable-npm-package-in-my-package-lock-json-that-isnt-listed