В проекте JS на github плагин CodeQL нашел уязвимость Prototype-polluting function. Как можно такое исправить?
Код который CodeQL указал в сообщении:
applyFrom[attr] as Record<string, object>
);
} else if (typeof applyFrom[attr] === 'object' && this.hasOwnProperty.call(applyFrom, attr)) {
applyTo[attr] = applyFrom[attr];
Нашел статьи
https://habr.com/ru/companies/huawei/articles/547178/,
https://temofeev.ru/info/articles/javascript-proto...,
https://habr.com/ru/companies/pt/articles/782750/.
Пробовал вариант Object.freeze, но в этом случае ломается логика, если applyTo[attr] содержит вложенный объект.
Также в статьях указывают, что можно использовать
Ajv JSON schema validator. Пока не понимаю как валидировать объекты с помощью JSON-схемы. Нужно составить json-схему из типов которые будут в applyTo, applyFrom передаваться?
Может есть какая-то библиотека JS, TS, которая позволяет копировать свойства объектов, и в которой нет уязвимости Prototype-polluting function?