Ruby: создание изолированного eval?

В приложении My Rails есть сложные правила о том, когда на странице должен отображаться небольшой контент. Я' Я решил реализовать это, написав предикаты (простые функции «да / нет») в Ruby и сохранив их в базе данных для последующего выполнения eval. Это довольно просто.

Моя главная забота - безопасность: если кто-то злоумышленник узнает, как писать в базу данных, он может вставить произвольный код Ruby в базу данных, и тогда « вся ваша база принадлежит нам '.

Так можно ли создать, например, «изолированную» eval, в которой удалены все операции ввода-вывода?

21
задан fearless_fool 20 May 2011 в 16:26
поделиться