Задать вопрос
@ekapro

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

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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽