Пользовательский код в безопасный php?

Добрый день! Нужно чтоб пользователи могли ввести в базу функцию времени изготовления деталей, которая затем будет инклюдится при расчетах занятости станков и специалистов. Функция может содержать как и простые формулы типа время = площадь_детали/константу, так и сложные функции с if, switch, foreach, sin и т.д. Желательно сделать так чтобы из этих функции нельзя было прочитать из базы записать в базу, прочитать удалить файлы и т.д.
Есть какие-нибудь готовые решения этого вопроса? Или как сделать решение?
Александр Туниеков
12 декабря 2018, 08:21
modx.pro
543
0
Поблагодарить автора Отправить деньги

Комментарии: 1

Александр Туниеков
12 декабря 2018, 12:47
+1
Сам задал вопрос сам и отвечаю :).
Код php можно распарсить в токены.
$tokens = token_get_all($code);
Потом пройтись по получившемуся массиву и если T_STRING содержит название разрешенной функции и токен не запрещен, например T_EVAL, записывать функцию в базу иначе возвращать ошибку. Примерно так :). Благо нужных функций не так много.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1