@Programep

Как исправить уязвимость Prototype-polluting function в JS?

В проекте 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?
  • Вопрос задан
  • 98 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы