Альтернатива Eval(), чтобы избежать обнаружения уязвимостей при сканировании с помощью инструмента Fortify

#javascript #fortify

#javascript #укрепление

Вопрос:

Инструмент Fortify помечает меня как уязвимого при использовании Eval(). Код выглядит следующим образом:

 function whatever(id1, name, id2, id3) {
    try {
        var func = "";
        var populateScript = "";
        name = "pp_"   name;
        if (loadFunction amp;amp; loadFunction.length > 0) {
            func = loadFunction.replace(/"/gi, "'")
        }
        populateScript = ejecutarPopulate.format(id1, name, id2, id3, func);
        eval(populateScript);
    } catch (e) {
        Message(e);
    }
}
  

Ejectarpopulate получает из базы данных некоторые значения для заполнения выпадающего меню и построения HTML.

Опасно ли использовать Eval()? Какая может быть альтернатива?

Комментарии:

1. Опасно использовать eval, если есть какой-либо способ, которым предоставленные пользователем данные могут попасть в оцениваемую строку, без пуленепробиваемого экранирования значения. Данные базы данных, которые изначально были предоставлены пользователем, действительно учитываются. Если это просто обновление некоторого HTML, зачем для этого нужно использовать eval?

2. не могли бы вы предоставить smt, которым может быть populateScript ?