Poprawny sposób naprawienia potencjalnej luki w zabezpieczeniach w zależności zdefiniowanej w package-lock.json

Github dał 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 pliku package.json. Moim zdaniem nie jest dobrą praktyką usuwanie pliku package-lock.json i jego regeneracja. Nie widzę jednak innego sposobu na rozwiązanie tego problemu. Jeśli odrzucę tę lukę w zabezpieczeniach, pojawi się ona ponownie kilka dni później. Jakieś pomysły? Dzięki!

Author: Kaito, 2018-03-31

4 answers

Należy spróbować zidentyfikować nazwę problematycznego pakietu, a następnie uruchomić

npm install package-name

Wymiana nazwy pakietu, oczywiście.

Spowoduje to zainstalowanie najnowszej wersji pakietu i bardzo często najnowsza wersja rozwiązuje problem z bezpieczeństwem. Jeśli masz ograniczenia w wersji (np: 1.2), zawsze możesz spróbować:

npm install package-name@^1.2

I zostanie zainstalowana najnowsza poprawiona wersja

New: teraz, z npm@6 można bezpośrednio uruchomić

npm audit fix
 10
Author: Jo Takion,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-02 08:44:51

Aby rozwiązać ten problem:

Solucja 1: Najpierw Znajdź lukę: używając terminala: cd do twojego projektu, następnie uruchom "npm ls hoek"

I wreszcie: npm install bcrypt@latest

Następnie wypchnij zaktualizowany projekt do git.(tj. wykonać nowy commit).

Rozwiązanie 2:

Jeśli pierwsza opcja / rozwiązanie nie rozwiąże problemu.Zmień wersję ręcznie w package-lock.json. Zmień swoją wersję ręcznie z 2.16.3 do 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

Następnie zaktualizuj swój projekt na GitHub(commit / push) Po prostu upewnij się, że każda wersja hoek występuje w Twoim pakiecie-lock.wersja json została zmieniona na 4.2.1

Alternatywnie, jeśli możesz wymyślić sposób na zmianę wersji hoek / aktualizacji hoek za pomocą npm, ułatwi to sprawę.(coś w stylu: npm update @hoek..wersja )..lub odinstaluj konkretną zależność, a następnie zainstaluj ją ponownie za pomocą bower lub npm.

 6
Author: RileyManda,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-29 19:28:22

Moim zdaniem usunięcie blokady pakietu nie jest dobrą praktyką.plik json i zregenerować go.

Jednak, to jest to, co zwykle robi się w tym przypadku.
Zobacz na przykład angular / angular-CLI problem 8534 , który jest rozwiązany przez PR 8535 .
Który prowadzi zależny projekt jak frees-io/freestyle-opscenter-webclient Aby zaktualizować swój package-lock.json: PR 31 .

 1
Author: VonC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-31 04:16:08

Najprostszym/najłatwiejszym sposobem naprawienia tego jest:

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

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

 1
Author: adrianmc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-31 18:57:49