Мой eval () безопасен?

Я построил ролик для игры в кости здесь:http://howderek.com/projects/diediedie/

и я хотел внедрить математику, чтобы мои пользователи могли предварительно преобразовать математические операции в свои списки, что полезно для RPG.

Вместо создания функции для обработки математики или использования библиотеки, такой какmath.jsЯ подумал, что, поскольку в JavaScript встроена математика, это может быть полезно дляeval().

Причина, по которой я обеспокоенeval() однако, это добавление?q=whatever в адрес DieDieDie входитwhatever в коробку и передал его DieDieDie

Теперь, очевидно, если бы это была просто eval-консоль, было бы легко злоупотреблять и запускать вредоносный JavaScript через, но это не так, я использую RegEx перед запускомeval()

От (http://howderek.com/projects/diediedie/js/diediedie.js):

if (!replaced.match(/[^0-9 | + | \- | * | \/ | ( | ) | \. | % | > | <]/g)) {
    result = eval(replaced);
} else {
    throw 'Unsafe eval (more than just math), refusing to execute.';
}

Итак, мне было интересно, есть ли способ обойти RegEx и запустить код, хотя этоeval() просто введя текст в поле.

Ответы на вопрос(1)

Ваш ответ на вопрос