[github] package-lock.json에 정의 된 종속성의 잠재적 보안 취약성을 수정하는 적절한 방법

Github가 내 저장소 중 하나에서이 오류를 제공했습니다.

We found a potential security vulnerability in one of your dependencies.
A dependency defined in ./package-lock.json has known security vulnerabilities
and should be updated.

종속성은 package.json파일에 정의되어 있지 않습니다 . 내 이해로는 package-lock.json파일 을 삭제 하고 다시 생성하는 것은 좋지 않습니다 . 그러나이 문제를 해결할 다른 방법은 없습니다. 이 보안 취약점을 무시하면 며칠 후 다시 나타납니다. 어떤 아이디어? 감사!



답변

새로운 기능 : 이제 npm @ 6을 사용하여 직접 실행할 수 있습니다.

npm audit fix

이전 답변 :

문제가있는 패키지의 이름을 확인한 다음 실행해야합니다.

npm install package-name

분명히 패키지 이름을 대체합니다.

이렇게하면 최신 버전의 패키지가 설치되며 최신 버전이 보안 문제를 해결하는 경우가 많습니다. 버전에 제약이있는 경우 (예 : 1.2) 언제든지 다음을 시도 할 수 있습니다.

npm install package-name@^1.2

최신 패치 버전이 설치됩니다.


답변

이 문제를 해결하려면 :

해결 방법
1 : 먼저 취약점을 찾으십시오. 터미널 사용 :
프로젝트에 cd 한 다음 “npm ls hoek” 실행

마지막으로
npm install bcrypt @ latest

그런 다음 업데이트 된 프로젝트를 git에 푸시합니다 (예 : 새로운 커밋 수행).

해결책 2 :

첫 번째 옵션 / 솔루션으로 문제가 해결되지 않는 경우 package-lock.json에서 버전을 수동으로 변경하십시오. 버전을 2.16.3에서 4.2.1로 수동 변경

"hoek": {
      "version":  "4.2.1",
      "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz",
      "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
      "dev": true

그런 다음 GitHub (commit / push)에서 프로젝트를 업데이트하십시오. package-lock.json 버전에서 발생하는 모든 hoek 버전이 4.2.1로 변경되었는지 확인하십시오.

또는 npm을 사용하여 hoek 버전 / update hoek을 변경하는 방법을 알아낼 수 있다면 훨씬 더 간단하게 만들 것입니다. (예 : npm update @ hoek..version ) .. 또는 특정 종속성을 제거한 다음 bower를 사용하여 다시 설치하거나 npm.


답변

나는 실로 구축하고 있던 프로젝트에서 lodash 보안 취약점과 동일한 문제를 겪고있었습니다. Github는이를 보안 문제로 표시했습니다.

터미널을 사용하여 위의 @rileymanda의 대답을 시도했습니다. cd into project, 다음 실행 npm ls lodash.

이것은 내 경우에 오류가 react-scripts에 있음을 발견했습니다 . 반응 스크립트 및 lodash 관련 문제에 대한 빠른 Google은 이것이 알려진 문제임을 밝혀 냈습니다.

나는 실을 통해 여러 가지를 고치려고 시도했지만 모두 성공하지 못했습니다. npm ls lodash여전히 사용중인 lodash의 취약한 버전을 보여주었습니다.

npm 개선에 대한 Matt Turnbull의 블로그 를 읽은 후 yarn에서 npm으로 다시 전환했습니다. (삭제 yarn.lock, 삭제 ./node_modules. 실행 npm install). npm ls lodash이제 사용중인 최신 종속성 버전이 표시되었습니다. 만세! github에 전념했으며 이제 취약점이 사라져서 기뻤습니다.

원 사는 그러한 문제를 풀기 위해 고군분투하는 것 같습니다 (또는 의도하지 않은 것 같습니다).

yarn으로 빌드 할 때이 문제가 발생하면 [back]을 npm으로 전환 해보세요!


답변

내 이해로는 package-lock.json 파일을 삭제하고 다시 생성하는 것은 좋지 않습니다.

그러나 이것은 일반적으로이 경우에 수행되는 것입니다.
예를 들어 PR 8535에서 해결 된 angular / angular-cli 문제 8534를 참조하십시오 .
리드 같은 종속 프로젝트는 하기 의 업데이트 PR (31) : .
frees-io/freestyle-opscenter-webclientpackage-lock.json


답변

이 문제를 해결하는 가장 간단하고 쉬운 방법은 다음과 같습니다.

  1. npm install <dep>
  2. npm uninstall <dep>
  3. npm update
  4. npm install

출처 : https://github.com/Microsoft/vscode/issues/48783#issuecomment-384873041


답변

알려진 보안 취약점을 업데이트해야합니다.

2019 년 5 월 23 일부터 ” Dependabot : 자동화 된 보안 수정 “이 있습니다.

Dependabot의 통합을 통해 자동화 된 보안 수정을 공개 베타로 출시했습니다.

자동화 된 보안 수정은 보안 취약성을 수정하기 위해 GitHub에서 생성하는 풀 요청입니다.
워크 플로의 지루한 부분을 자동화하고 개발자가 종속성을 최신 상태로 유지할 수 있도록합니다.

“더 많은 참조 자동화 된 보안 수정 프로그램 구성

참고 : 자동 보안 수정은 베타 버전으로 제공되며 변경 될 수 있습니다.

보안 경고 및 종속성 그래프를 사용하는 모든 저장소에 대해 자동 보안 수정을 활성화 할 수 있습니다.
2019 년 5 월부터 다음 몇 개월 동안 보안 경고 및 종속성 그래프를 사용하는 모든 저장소에서 자동 보안 수정을 자동으로 활성화합니다.


답변

이것은 나를 위해 작동합니다. 모든 종속성을 제거하고 다시 설치하십시오.

예를 들면

package.json 에서 종속성 목록 참조

{
"name": "ebook-saler",
  "version": "1.0.0",
  "description": "App for selling ebooks",
  "main": "app.js",
  "scripts": {
    "start": "node app.js"
  },
  "author": "Md Shayon",
  "license": "ISC",
  "dependencies": {
    "body-parser": "^1.19.0",
    "express": "^4.17.1",
    "express-handlebars": "^3.1.0",
    "hoek": "^6.1.3",
    "stripe": "^7.5.0"
  }
}

이것에 대한 명령을 따르십시오

npm uninstall body-parser express express-handlebars hoek stripe
npm install body-parser express express-handlebars hoek stripe
git commit -m "updated"
git push