А почему без форка ? Зачем такое ограничение ?
На мой взгляд - это идеальная изоляция..
Берете любой удобный интерпретатор, хоть питон, хоть перл хоть луа.
Придумываете формат ввода данных, формат вывода данных, формат передачи микро-программы.
При форке делаете полную изоляцию (chroot, path, и все что нужно).
 Все - у вас есть "сопроцессор", который лопатит математику.

On 03/15/2014 04:56 PM, Nick Knutov wrote:
В некотором биллинге (он на перле) надо задать функцию для подсчета цены
в зависимости от некоторых внешних переменных.

Эта функция должна быть простым текстом и редактироваться в админке
простыми людьми (т.е. делать её например хранимой процедурой в БД не
получится).

Биллинг её должен запускать в изолированном контексте (редактрируют её
простые люди, а безопасность важна), без отдельного форка, имея на вход
массив/хеш с переменными и получать такой же ответ. Работа этой функции
может быть не очень быстрой, хайлоада нет.

Я не хочу писать очередной микро-псевдно-язык. Вопрос - можно ли для
этих целей использовать LUA и если это хорошая идея - то как именно?
Lua::API? Inline::Lua? А может PHP::Interpreter? )

Сущность самой функции - математические вычисления на основе входных
параметров. Будет лучше, если ей внутри будут доступны всякие
математические функции для среднего и округлений, но весьма желательно
иметь возможность запретить всё остальное, особенно трогать файлы и
делать внешние хттп запросы.

Как еще можно/лучше решить эту задачу?


--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить