Я выполняю yarn audit
для моего проекта. Даже после обновления доступных пакетов до последней версии и запуска yarn upgrade
, многие ошибки и предупреждения сохраняются. Пример низкого риска:
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ low │ Prototype Pollution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >=4.17.5 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ @storybook/addon-knobs │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ @storybook/addon-knobs > react-color > reactcss > lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://nodesecurity.io/advisories/577 │
└───────────────┴──────────────────────────────────────────────────────────────┘
Так как с lodash
есть много ошибок, я собираюсь их исправить, используя выборочные разрешения версий: https://yarnpkg.com/lang/en/docs/selective-version-resolutions/ Я сделаю следующее, потому что 4.17.11 - это версия lodash
что мой проект использует, и это также приводит к отсутствию предупреждений во время установки.
"resolutions": {
"lodash": "4.17.11"
},
Я очень не хочу, чтобы решения оставались всегда. Поскольку я не получал предупреждений во время установки, я предполагаю следующее: После запуска yarn install
я могу удалить lodash
из resolutions
, не понижая его до предыдущей уязвимой версии. Я прав насчет этого?
Я рассуждаю так: если бы я разработал алгоритм разрешения, я бы не стал понижать его пакет, если бы существующее разрешение было совместимо со спецификациями версий всех пакетов, которым оно требуется. Но быть вероятным - это не то же самое, что быть правдой. Я очень открыт для того, чтобы меня застрелили.