Пользовательский код в безопасный php?
Добрый день! Нужно чтоб пользователи могли ввести в базу функцию времени изготовления деталей, которая затем будет инклюдится при расчетах занятости станков и специалистов. Функция может содержать как и простые формулы типа время = площадь_детали/константу, так и сложные функции с if, switch, foreach, sin и т.д. Желательно сделать так чтобы из этих функции нельзя было прочитать из базы записать в базу, прочитать удалить файлы и т.д.
Есть какие-нибудь готовые решения этого вопроса? Или как сделать решение?
Есть какие-нибудь готовые решения этого вопроса? Или как сделать решение?
Поблагодарить автора
Отправить деньги
Комментарии: 1
Сам задал вопрос сам и отвечаю :).
Код php можно распарсить в токены.
Код php можно распарсить в токены.
$tokens = token_get_all($code);
Потом пройтись по получившемуся массиву и если T_STRING содержит название разрешенной функции и токен не запрещен, например T_EVAL, записывать функцию в базу иначе возвращать ошибку. Примерно так :). Благо нужных функций не так много.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.