Я пытаюсь решить некоторые проблемы безопасности в моем приложении узла стека MEAN.
В настоящее время я использую npm audit --parseable | grep high
, чтобы получить только важные уязвимости, которые выводят 4 из них, 2 из они связаны с angular devkit, но два других:
review lodash high >=4.17.11 Prototype Pollution https://npmjs.com/advisories/782 saml2js>lodash
review lodash high >=4.17.12 Prototype Pollution https://npmjs.com/advisories/1065 saml2js>lodash
Итак, проблема в том, что версия lodash
, используемая saml2js
, устарела и ее необходимо обновить до 4.17.12. или новее.
В настоящее время мы используем старый модуль saml2 js, чтобы проанализировать SAMLResponse
, полученные в процессе аутентификации, например:
const Saml2js = require('saml2js');
app.post('/success', async (req, res) => {
const buffer = Buffer.from(req.body.SAMLResponse || req.body.SAMLRequest, 'base64');
const parser = new Saml2js(buffer);
const user = parser.toObject();
console.log(user) // { name: 'John Doe', id: 1234 }
// Do logic ...
});
Итак, я считаю, что у меня есть следующие варианты:
- Обновите версию loda sh, которую использует
saml2js
(как описано в результатах аудита npm), чтобы избавиться от этих уязвимостей. - Замените модуль
saml2js
на другой, более новый и безопасный, но я не смог найти другого, который мог бы анализировать ответ SAML изначально. - Выполните синтаксический анализ «вручную», но для этого потребуется поддержка других зависимостей, а затем, возможно, создание новых проблемы с безопасностью, поэтому мой первый вариант - № 1.
Есть ли предложения по обновлению версии lodash
с saml2js
или подход, который мне следует предпринять?