Github podał mi ten błąd w jednym z moich repozytoriów.
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.
Zależność nie jest zdefiniowana w naszym package.json
pliku. W moim rozumieniu usuwanie package-lock.json
pliku i jego ponowne generowanie nie jest dobrą praktyką . Nie widzę jednak innego sposobu rozwiązania tego problemu. Jeśli odrzucę tę lukę w zabezpieczeniach, pojawi się ona ponownie kilka dni później. Jakieś pomysły? Dzięki!
github
npm
package-lock.json
Kaito
źródło
źródło
Odpowiedzi:
Nowość: teraz z npm @ 6 możesz bezpośrednio biec
Stara odpowiedź:
Powinieneś spróbować zidentyfikować nazwę pakietu powodującego problem, a następnie uruchomić
oczywiście zastępując nazwę pakietu.
Spowoduje to zainstalowanie najnowszej wersji pakietu i bardzo często najnowsza wersja rozwiązuje problem bezpieczeństwa. Jeśli masz ograniczenie dotyczące wersji (np .: 1.2), zawsze możesz spróbować:
i zostanie zainstalowana najnowsza poprawiona wersja
źródło
npm ls vulnerability-name
. Zawiera listę elementów zależnych od luki, które można następnie zaktualizować / zainstalować. (jak wspomniano dość niejasno w odpowiedzi @ RileyManda)package-name
wdependencies
zpackage.json
. Nie chcę tego.Aby rozwiązać ten problem:
Rozwiązanie 1: Najpierw znajdź lukę: użyj terminalu: cd do swojego projektu , a następnie uruchom "npm ls hoek"
I na koniec: npm install bcrypt @ latest
Następnie wypchnij zaktualizowany projekt do git (tj. Wykonaj nowe zatwierdzenie).
Rozwiązanie 2:
jeśli pierwsza opcja / rozwiązanie nie rozwiązuje problemu, zmień wersję ręcznie w pliku package-lock.json. Zmień ręcznie wersję z 2.16.3 na 4.2.1
Następnie zaktualizuj swój projekt na GitHub (zatwierdzenie / wypychanie) Po prostu upewnij się, że każde wystąpienie wersji hoek w Twojej wersji package-lock.json zostało zmienione na 4.2.1
Alternatywnie, jeśli możesz znaleźć sposób na zmianę wersji hoek / aktualizację hoek za pomocą npm, znacznie uprości to. ( Npm update @ hoek..version ) .. lub odinstaluj określoną zależność, a następnie zainstaluj ją ponownie za pomocą bower lub npm.
źródło
Miałem ten sam problem z luką w zabezpieczeniach typu lodash w projekcie, który budowałem z przędzy. Github oznaczył je jako zagrożenie bezpieczeństwa.
Spróbowałem odpowiedzi z @rileymanda powyżej, używając terminala: cd do projektu, a następnie uruchom
npm ls lodash
.To ujawniło, że w moim przypadku błąd był w skryptach reagowania . Szybka wyszukiwarka Google w przypadku problemów ze skryptami reagowania i zgłaszania problemów ujawniła, że jest to znany problem.
Próbowałem różnych rzeczy naprawić za pomocą przędzy - wszystko bez powodzenia.
npm ls lodash
nadal pokazywał podatną wersję lodash w użyciu.Po przeczytaniu bloga Matta Turnbulla o ulepszeniach npm przełączyłem się z powrotem z przędzy na npm. (Usuń
yarn.lock
, usuń./node_modules
. Uruchomnpm install
).npm ls lodash
teraz pokazał najnowsze używane wersje zależności - hurra! Zaangażował się w github i był teraz szczęśliwy, że luka zniknęła.Wygląda na to, że przędza ma problemy z rozwiązywaniem takich problemów (lub nie jest to zamierzone).
Jeśli napotykasz ten problem podczas budowania z włóczki, spróbuj przełączyć [z powrotem] na npm!
źródło
Jednak tak się zwykle dzieje w tym przypadku.
Patrz na przykład kwestia kątowa / kątowa-CLI 8534 , którą rozwiązuje PR 8535 .
Że prowadzi zależny projekt podobny
frees-io/freestyle-opscenter-webclient
do aktualizacji swojegopackage-lock.json
: PR 31 .źródło
Najprostszym / najłatwiejszym sposobem rozwiązania tego problemu jest:
npm install <dep>
npm uninstall <dep>
npm update
npm install
Od: https://github.com/Microsoft/vscode/issues/48783#issuecomment-384873041
źródło
Od 23 maja 2019 roku masz teraz „ Dependabot: automatyczne poprawki zabezpieczeń ”
Więcej informacji można znaleźć w sekcji „ Konfigurowanie automatycznych poprawek zabezpieczeń ”
źródło
npm audit
i / lubnpm audit fix
.To działa dla mnie. odinstaluj wszystkie zależności i zainstaluj je ponownie
Na przykład
z package.json zobacz listę swoich zależności
Postępuj zgodnie z poleceniem
źródło
Patrz szczegóły
źródło
spróbuj
npm audit fix
, to rozwiąże wiele ostrzeżeńnastępnie
npm i [package.name]@xxx
na przykład:
npm i [email protected]
źródło