@ekapro

Как проверить безопасность пользовательского кода перед выполнением в eval?

Необходимо предоставить пользователям онлайн сервиса возможность составлять формулы (допускаются арифметические и логические операции, ветвление, переменные).
Для решения задачи предполагаю запускать пользовательский код через eval, предварительно проверив на наличие запрещенных функций и выражений. Написали следующую регулярку для поиска в коде запрещенных конструкций:
'/[^$\w]([a-zA-Z][\w_]+)|(\$this)/i'
Достаточно ли такой проверки для безопасности запуска пользовательского кода? Может есть более удачные решения задачи?
  • Вопрос задан
  • 177 просмотров
Решения вопроса 1
27cm
@27cm
TODO: Написать статус
Комментировать
Пригласить эксперта
Ответы на вопрос 1
evnuh
@evnuh
Поиск Гугл помог мне, впусти и ты его в свой дом
Вариант, конечно, имеет место быть. Так проще, но менее правильно. Правильно написать парсер синтаксиса ваших формул, у вас он должен быть примитивным, судя по условиям задачи.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы