2009-01-02 8 views
5

J'ai trouvé qu'il y avait une gemme sandbox (créé par les gars qui ont fait try ruby in your browser mais il était compatible uniquement avec Ruby 1.8 Un autre problème est que je ne peux plus le trouver (il semble qu'ils arrêtent au service de la pierre précieuse des serveurs ...).Langue dans un bac à sable dans Rails

alors, est-il sécurisé façon d'exécuter Ruby dans un bac à sable (vous pouvez donc l'exécuter à partir de votre navigateur)? Ou un moyen facile de courir (pour exemple lua/python) dans un sandbox (pas d'accès au système de fichiers, pas de création d'objets etc) et être appelé depuis Ruby (Rails 2.2)?

Je veux faire une application comme try_ruby même sans avoir un rubis en dessous. Mais ça doit être une langue facile (j'ai vu qu'il y avait un prologue en rubis, même un lisp mais je ne pense pas qu'ils soient faciles à apprendre les langues ...).

Alors, avez-vous des suggestions ou des conseils? Ou devrais-je simplement commencer à créer mon propre DSL dans Ruby (s'il y a une solution dans la création d'un système quelque peu sûr)?

Thx

Répondre

1

Je suis tombé sur This article on hackety.org (lien mort) ce matin. Peut-être qu'il peut vous servir de guide dans la bonne direction

0

Une autre façon est comme codepad.org fait il (isolement VM et la vérification des appels)

4

Je développe une mise en œuvre d'un bac à sable pour le rubis basé sur une modification du rubis interprète écrit en C, j'ai publié récemment une version fonctionnelle de la gemme appelé shikashi (rdoc documentation)

+0

salut j'essaie d'utiliser votre projet de gemme dans les rails. Je reçois cette étrange méthode indéfinie 'shadow' sur enumerable. C'est quand les méthodes de proxy d'association d'accès –

+0

S'il vous plaît, rapportez les bugs à la page principale du projet (https://github.com/tario/shikashi) afin d'être réparé plus rapidement . – rseminara

+0

Ce bug n'existe plus, en raison d'un refactor de code pour remplacer l'approche laide de hook, rallhook gem par shikashi, une solution plus stable (beaucoup d'autres problèmes disparaissent aussi) – rseminara

0

Je ne suis pas sûr si vous voulez exécuter une langue dans un bac à sable, mais j'ai trouvé que JavaScript a été exécuté en tant que The ruby racer project vous permet d'intégrer le moteur v8 dans r uby. J'espère que cela pourra aider.