Безопасная new Function(str)

Рейтинг: 0Ответов: 1Опубликовано: 12.09.2014

Здравствуйте.

Необходимо вычислить строку. Реализовал через new Function(str). Вопрос такой: с точки зрения безопасности, достаточно ли проверить регуляркой запуск метода (функции) и отсутствие операций присваивания?

var evalute = function (expr, context) {
  expr = expr.replace(/\s+/g, '');
  if (/[^^\+\-\*\/\<\>\=]\(|[^\<\>\!\=]\=[^\=]/.test(expr)) {
    throw new Error('bad expression '+expr);
  }
  return (new Function('return ' + expr).bind(context))();
};

Ответы

Ответов пока нет.