Ограничение доступа к классам Java в скрипте JRuby - PullRequest
0 голосов
/ 14 апреля 2011

Я хочу разрешить клиенту писать скрипты на JRuby и запускать их на веб-сервере. Есть ли способ отключить интеграцию java-jruby. Или хотя бы способ отключить доступ к отдельным классам?

Ответы [ 2 ]

0 голосов
/ 19 апреля 2011

Посмотрите на интерфейс org.jruby.Profile. При этом вы можете реализовать пользовательскую версию, которая запрещает загрузку определенных файлов или классов. Как указано в комментариях выше, запрещение загрузки «java» должно быть достаточно для отключения интеграции Java.

Вы можете установить профиль времени выполнения с помощью org.jruby.RubyInstanceConfig#setProfile до инициализации времени выполнения. Если вы используете org.jruby.embed API, используйте org.jruby.embed.ScriptingContainer#setProfile.

0 голосов
/ 15 апреля 2011

Вы разрешаете пользователю отправлять файл, и ваш сервер выполняет его как скрипт? Это, вероятно, очень плохая идея по нескольким причинам. Начнем с того, что они могут делать в Java, чего вы не хотите, чтобы они не могли делать простым рубином?

При этом убедитесь, что в скрипте нет require 'java', что предотвратит интеграцию Java.

...