Я работаю над приложением rails, которое принимает рубиновый код в качестве входных данных и выполняет его. Поскольку отправленный код поступает из ненадежного домена, я хочу ограничить доступ к определенным методам и модулям. Например, я не хочу, чтобы пользователи имели доступ к File.read
или open()
.
Кроме того, можно ли ограничить доступ только к нескольким модулям? Только модули из белого списка могут требоваться от кода, отправленного пользователем.
Вероятно, я могу проверить пользовательский код, но я хотел проверить, есть ли у рубинового языка или каких-либо модулей такая возможность.
Codeschool.com предлагает интерактивные руководства. Мне интересно, ограничивают ли они доступ к пользовательскому коду или вообще проводят какую-либо проверку.