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.
내 이해로는 package-lock.json 파일을 삭제하고 다시 생성하는 것은 좋지 않습니다.
그러나 이것은 일반적으로이 경우에 수행되는 것입니다.
예를 들어 PR 8535에서 해결 된 angular / angular-cli 문제 8534를 참조하십시오 . 리드 같은 종속 프로젝트는 하기 의 업데이트 PR (31) : .frees-io/freestyle-opscenter-webclient
package-lock.json
이 문제를 해결하는 가장 간단하고 쉬운 방법은 다음과 같습니다.
npm install <dep>
npm uninstall <dep>
npm update
npm install
출처 : https://github.com/Microsoft/vscode/issues/48783#issuecomment-384873041
나는 실로 구축하고 있던 프로젝트에서 lodash 보안 취약점과 동일한 문제를 겪고있었습니다. Github는이를 보안 문제로 표시했습니다.
터미널을 사용하여 위의 @rileymanda의 대답을 시도했습니다. cd into project, 다음 실행 npm ls lodash
.
이것은 내 경우에 오류가 react-scripts에 있음을 발견했습니다 . 반응 스크립트 및 lodash 관련 문제에 대한 빠른 Google은 이것이 알려진 문제임을 밝혀 냈습니다.
나는 실을 통해 여러 가지를 고치려고 시도했지만 모두 성공하지 못했습니다. npm ls lodash
여전히 사용중인 lodash의 취약한 버전을 보여주었습니다.
npm 개선에 대한 Matt Turnbull의 블로그 를 읽은 후 yarn에서 npm으로 다시 전환했습니다. (Delete yarn.lock
, delete ./node_modules
. Run npm install
). npm ls lodash
이제 사용중인 최신 종속성 버전이 표시되었습니다. 만세! github에 전념했으며 이제 취약점이 사라져서 기뻤습니다.
원 사는 그러한 문제를 풀기 위해 고군분투하는 것 같습니다 (또는 의도하지 않은 것 같습니다).
yarn으로 빌드 할 때이 문제가 발생하면 [back]을 npm으로 전환 해보세요!
알려진 보안 취약점을 업데이트해야합니다.
2019 년 5 월 23 일부터 " Dependabot : 자동화 된 보안 수정 "이 있습니다.
Dependabot의 통합을 통해 자동화 된 보안 수정을 공개 베타로 출시했습니다.
Automated security fixes are pull requests generated by GitHub to fix security vulnerabilities.
They automate a tedious part of the workflow and make it easy for developers to keep their dependencies up to date.
See more at "Configuring automated security fixes"
Note: Automatic security fixes are available in beta and are subject to change.
You can enable automatic security fixes for any repository that uses security alerts and the dependency graph.
We'll automatically enable automatic security fixes in every repository that uses security alerts and the dependency graph over the next few months, starting in May 2019.
This works for me. uninstall all of your dependencies and install it again
For example
from package.json see list of your dependencies
{
"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"
}
}
Follow the command for this
npm uninstall body-parser express express-handlebars hoek stripe
npm install body-parser express express-handlebars hoek stripe
git commit -m "updated"
git push
- On GitHub, navigate to the main page of the repository.
- Under your repository name, click Security.
- Click the alert you'd like to view.
- Review the details of the vulnerability and, if available, the pull request containing the automated security fix.
- Optionally, if there isn't already an automated security fix for the alert, to create a pull request to resolve the vulnerability, click Create automated security fix.
- When you're ready to update your dependency and resolve the vulnerability, merge the pull request.
try npm audit fix
, it will slove many warnings
then npm i [package.name]@xxx
for example:
"dependencies": {
"lodash": ">=4.17.13"
}
npm i lodash@4.17.13
'developer tip' 카테고리의 다른 글
최고의 OAuth2 C # 라이브러리는 무엇입니까? (0) | 2020.11.12 |
---|---|
부모 노드와 통신하기위한 react.js 커스텀 이벤트 (0) | 2020.11.12 |
Entity Framework는 재귀 계층과 어떻게 작동합니까? (0) | 2020.11.12 |
C #에서 리플렉션을 사용하여 중첩 된 개체의 속성 가져 오기 (0) | 2020.11.12 |
Amazone의 EC2 인스턴스에서 코드를 실행하는 방법은 무엇입니까? (0) | 2020.11.12 |