programing

github Dependabot 경보:n번째 체크의 비효율적인 정규 표현 복잡성

css3 2023. 3. 16. 21:43

github Dependabot 경보:n번째 체크의 비효율적인 정규 표현 복잡성

중복될 수 있지만 명확한 답을 찾을 수 없습니다.

Dependabot cannot update nth-check to a non-vulnerable version 다음 > conflicting 의존관계 때문에 설치 가능한 최신 버전은 1.0.2입니다.

react-select@5.0.0에는 css-select@2.1.0에 대한 전이 의존성을 통해 nth-check@^1.0.2가 필요합니다.

4.0.0에서 react-parames@5.0.0으로 업그레이드되었습니다.

이번 호에서 Dan Abramov가 설명했듯이, 이는 잘못된 경보이며 안전하게 폐기할 수 있습니다.

구체적으로는 CRA를 사용하고 있고 nth-check가 그것에서만 참조되는 경우에는 문제가 되지 않습니다.CRA는 빌드툴이며 취약한 코드는 결과 어플리케이션번들에 들어가지 않기 때문에 클라이언트코드에 의해 호출되지 않습니다.

이것을 확인하려면 , 「react-scripts」를 「devDependencies」로 이동합니다.package.json및 실행 중npm audit --production.

회피책을 설명하기 전에 몇 가지 주의사항을 설명하겠습니다.

  1. 아무래도...react-scriptsvulnerability는 (여기서 설명한 바와 같이) 잘못된 알람입니다.Dan Abramov는 또한 어떻게 하는가에 대한 매력적인 상세 블로그 투고를 썼다.npm audit특히 프런트 엔드 툴링의 경우 어떻게 파손되었는지에 대해 설명합니다.

  2. 부터react-scripts는 기본적으로 빌드 툴입니다.설령 취약성이 진짜라고 해도, 어쨌든 실가동 번들에서 제외되기 때문에, 개발상의 문제로 밖에 간주되지 않습니다.

그래서 당신이 소위 말하는 "취약성"에 대해 아무것도 하지 않는다면, 나쁜 일은 일어나지 않을 것이고, 그것은 완벽하게 정상입니다.그러나 취약성이 존재한다는 빨간색 경보가 심미적으로 거슬리거나 CI/CD를 중단하는 경우 계속 읽어 보십시오.

회피책:

이 문제는 lib에서 시작된 것 같습니다.@svgr/webpack 4.0.0 - 5.0.0.

사용하시는 경우node버전 > = 16, 설치할 수 있습니다.@svgr/webpack내 경우 버전을 설치했습니다.^6.2.1~하듯이devDependency.

여기에 이미지 설명 입력

그런 다음 오버라이드(또는 사용 중인 경우 해상도)를 생성해야 합니다.yarn)의 섹션이 있습니다.package.json다음 행을 포함합니다."@svgr/webpack": "$@svgr/webpack".

여기에 이미지 설명 입력

그리고 마지막으로, 당신은 당신의 데이터를 삭제해야 합니다.node_modules폴더와 사용자package-lock.json를 실행합니다.npm install.

회피책 크레딧

react-scripts 5.0.1 이후에도 패키지의 react 스크립트 버전을 "dependencies"에서 "Devendencies"로 이동할 수 있음을 확인합니다.json은 다음과 같습니다.

 "devDependencies": {
    "react-scripts": "^5.0.1"
  },

Devendency는 개발 단계에서 파일에 요구하거나 바이너리로 실행함으로써 소비되는 패키지입니다.이러한 패키지는 개발 중에만 필요하며 프로덕션 구축에는 필요하지 않습니다."

"npm audit --production"을 실행하여 프로덕션에서 react-script가 필요하지 않음을 나타냅니다.

물론 여전히 취약성이 있는 경우 다른 패키지로 인해 취약성이 발생했을 수 있습니다.

https://dev.to/moimikey/demystifying-devdependencies-and-dependencies-5ege

package.json을 엽니다.다음과 같은 정보가 있습니다.

"dependencies": {
    "react": "^17.0.2",
    "react-dom": "^17.0.2",
    "react-scripts": "4.0.3"
  }

react-scripts를 가져와서 devDependencies로 이동합니다(없으면 작성).

  "dependencies": {
    "react": "^17.0.2",
    "react-dom": "^17.0.2"
  },
  "devDependencies": {
    "react-scripts": "4.0.3"
  },

다음 반드시 ' ' ' ' ' ' ' ' ' " ""npm audit --production"

그러면 경고가 수정됩니다.

저도 react-scripts@^5.0.0 입니다.

그래서 저는 개인적으로 먼저 실을 사용하는 것을 추천합니다.하지만 모든 사람은 그들만의 취향이 있다! 그렇게 하기 위해, 타이핑을 할 수 있다.

npm install --global yarn

그 후 패키지 잠금 파일을 삭제하고 앱 폴더에서 다음 명령을 실행할 수 있습니다.

yarn

(깜짝이야)그러면 yarn.lock 파일이 생성됩니다.실과 npm을 동시에 사용하지 않도록 주의하세요!

바로 그 같은 yarn.lock 파일에서 n번째 체크 문자열을 검색해야 합니다!새로운 리액트 앱(지금까지)에서는 8개의 문자열이 검색됩니다.이 문자열은 패키지 버전 옆에 설정됩니다.그게 네가 바꾸고 싶은 거야

저 같은 경우에는 예를 들면

nth-check@^1.0.2: //so far. This version can be different for an older projet.
  version "1.0.2"
  resolved "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz"

그 모든 잘못된 버전을 톱으로 바꾸려고 합니다.다음과 같이 표시됩니다.

nth-check@^2.0.1:
  version "2.0.1"
  resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz"

하지만 몇 가지 버전을 변경해야 합니다.한 명뿐만이 아니다.나는 그것을 했다. (-6번 나는 믿는다.)파일을 저장할 경우 간단한 파일을

yarn

명령어 뒤에 a가 이어집니다.

yarn audit

당신의 문제 중 하나를 해결해 줄 거예요!

도움이 됐길 바라.건배!

위의 방법 중 하나라도 효과가 없는 경우는, 다음과 같이 시험해 주세요.

먼저 이 취약성이 코드 내에서 사용되는지 여부를 확인합니다.

npm 체크

취약점 모듈이 코드에 사용되지 않는 경우 'package-lock.json'으로 이동하여 다음과 같은 취약점 경로를 검색합니다.

node_syslog/sysloggo/node_sysk/nth-check

json 파일에서 이 종속성을 제거합니다.

그럼 달려라

npm 감사

이것은 표시됩니다.

found 0 vulnerabilities

이 문제는 주로 사용 시 발생합니다.

npx create-module-app "app"

'React-Scripts' 모듈을 설치하려고 했습니다.

에서 CMD를 체크합니다." npm -g list "

★★★★★★★★★★★★★★★★★」"npm install -g create-react-app"

"npx create-react-app ./"

특정 의존관계와 그 자녀 의존관계 버전을 2.0.1로 변경해야 했습니다.이 경우 문제가 발생한 의존관계는 "css-select@npm:^2.0"이었습니다.

yarn.lock 파일에서 nth-check 의존관계를 검색하면 "css-select@npm:^2.0.0" 내에서 nth-check 의존관계를 찾을 수 있습니다.여기서 버전 형식을 "1.0.2"에서 "2.0.1"로 변경해야 합니다.

css-select@npm:^2.0.0":
  version: 2.1.0
  resolution: "css-select@npm:2.1.0"
  dependencies:
    boolbase: ^1.0.0
    css-what: ^3.2.1
    domutils: ^1.7.0
    nth-check: ^2.0.1 // this is where you need to make change
  checksum: 0c4099910f2411e2a9103cf92ea6a4ad738b57da75bcf73d39ef2c14a00ef36..
  languageName: node
  linkType: hard

이 이전 버전의 n번째 체크를 하위 종속성으로 사용하는 종속성은 업데이트해야 합니다. 그러면 문제가 해결됩니다.

언급URL : https://stackoverflow.com/questions/71282206/github-dependabot-alert-inefficient-regular-expression-complexity-in-nth-check