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 fix
NPM에게 취약점 수정을 요청합니다.
편집 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.json
를 package.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
'programing' 카테고리의 다른 글
STATION에서 모음(즉, a, e, i, o 또는 u)으로 시작하는 CITY 이름 목록 쿼리 (0) | 2023.09.16 |
---|---|
왜 일부 컴파일러는 실행 파일의 기본 이름으로 "a.out"을 사용합니까? (0) | 2023.09.16 |
SQL에서 합산 및 그룹화에 따른 결과 차이 (0) | 2023.09.16 |
MySQL에서 기본 키가 아닌 필드를 자동으로 증가시켜야 합니다. (0) | 2023.09.16 |
j효과 추가를 사용한 jQuery (0) | 2023.09.16 |