Язык в песочнице в Rails

Я обнаружил, что БЫЛО жемчужина песочницы (созданная ребятами, которые заставили попробовать ruby ​​в вашем браузере, но она был совместим только с Ruby 1.8.Еще одна проблема в том, что я больше не могу его найти (кажется, они перестали обслуживать гем с серверов...).

Итак, существует ли безопасный способ запустить ruby ​​в песочнице (чтобы вы могли запускать его из своего браузера)? Или простой способ запуска (например, lua/python) в песочнице (без доступа к файловой системе, без создания объектов и т. д.) и вызова из Ruby (Rails 2.2)?

Я хочу сделать приложение, подобное try_ruby, даже без рубина. Но это должен быть простой язык (я видел, что в рубине есть пролог, даже шепелявый, но я не думаю, что эти языки легко выучить...).

Итак, у вас есть предложения или советы? Или я должен просто начать создавать свой собственный DSL в Ruby (если есть решение в создании несколько безопасной системы)?

Спасибо


person Jon Romero    schedule 02.01.2009    source источник


Ответы (6)


Я разрабатываю реализацию песочницы для ruby ​​на основе модификации интерпретатора ruby, написанного на C, недавно я выпустил функциональную версию гема под названием shikashi (документация rdoc).

person rseminara    schedule 21.06.2010
comment
привет, я пытаюсь использовать ваш драгоценный камень в проекте rails. я получаю этот странный неопределенный метод «тень» для enumerable. Это когда прокси-методы ассоциации доступа - person Subba Rao; 16.10.2010
comment
Эта ошибка больше не существует из-за рефакторинга кода для замены уродливого подхода крюка, гем rallhook от шикаши, более стабильного решения (многие другие проблемы также исчезли) - person rseminara; 19.12.2010
comment
Обратите внимание, что Shikashi, по-видимому, требует явного белого списка всех методов/констант, которые пользователь может использовать или назначать. Это очень безопасно... но, вероятно, слишком безопасно для того, что большинство людей хочет видеть в песочнице. - person Phrogz; 14.09.2011

Вам следует попробовать встроить JRuby в браузер.

http://ruby-in-browser.googlecode.com/svn/trunk/evalruby/index.html

person Community    schedule 02.01.2009

Парень, написавший оригинальный гем, исчез в стиле Кайзера Сёзе: http://www.rubyinside.com/why-the-lucky-stiff-is-missing-2278.html

Я читал, что гем JRuby более актуален или поддерживается, но до сих пор я находил его глючным. Вот несколько инструкций по настройке: http://flouri.sh/2009/4/4/how-to-set-up-the-jruby-sandbox

В целом, похоже, что Ruby сейчас не хватает надежной реализации этого :(

person Brian Armstrong    schedule 28.03.2010

Сегодня утром я наткнулся на эту статью на hackety.org(мёртвая ссылка). Может быть, это может послужить вам проводником в правильном направлении

person krusty.ar    schedule 02.01.2009

Другой способ, как это делает codepad.org (изоляция виртуальной машины и проверка вызовов)

person Jon Romero    schedule 04.02.2009

Я не уверен, хотите ли вы запускать какой-либо язык в песочнице. Но я обнаружил, что JavaScript долгое время работал как язык-песочница. Проект ruby ​​racer позволяет встроить движок v8 в ruby. Надеюсь, это поможет.

person Vagmi Mudumbai    schedule 09.07.2010