Многие вещи, которые называются «рискованными», сами по себе не являются угрозами безопасности, они просто потенциально угрозами безопасности в случае неправильной реализации.Это один из таких случаев.Вы могли бы иметь сценарий, подобный
const foo = 'foo';
const bar = eval('foo');
Этот код, точно так же, как и ни с чем другим, очевидно, не является угрозой безопасности, но вы не можете полностью полагаться на оценщиков безопасности, чтобы полностьюточно проверяйте, действительно ли то, как вы реализуете что-то, является на самом деле безопасным или нет - они используют запрограммированную эвристику, а не специалист по безопасности человека, проверяющий ваш код на наличие дыр.Таким образом, использование eval
и его родственников, таких как new Function
, более тесно коррелирует с небезопасным кодом.
В моем фрагменте, как и в вашем коде, даже если это не защитариск, это все еще очень не элегантный способ достижения вашей цели.Попробуйте найти лучший способ достижения этого.Например:
var myString = "foo ${hello} bar";
function myFunc(replaceHelloWith) {
return myString.replace(/\$\{hello\}/g, replaceHelloWith);
}
console.log(myFunc("whassup"));