Frage

Ich möchte dem Benutzer eine benutzerdefinierte Anwendungen schreiben lassen (man denke an Themen oder Plugins auf Wordpress) und Upload / laufen sie auf meiner Website.

Ich denke über Sinatra mit apps für diesen, da es würde den Benutzern ein hohes Maß an Flexibilität geben und sie dann als Middleware in meiner Rails-Anwendung ausgeführt wird.

Aber ich kann die Auswirkungen auf die Sicherheit dieses nicht herausfinden. Ich habe versucht, eine einfache sinatra App als Middleware zu schaffen, und es hat Zugriff auf alle Schienen Modelle und alles - so schlimm ist. Gibt es eine Möglichkeit für die Rack diese getrennt, so zu halten, dass die sinatra Apps effektiv Sandbox und nicht tun können, keine schlechten Dinge (außerhalb einer API oder eine bestimmte Art und Weise ich ein Setup für sie zu kommunizieren)?

Es kann ein einfacher Weg, dies zu erreichen, dass ich nicht von allzu gedacht habe, so Ideen willkommen. Dank!

War es hilfreich?

Lösung

Vielleicht ein Blick auf TryRuby / die freaky Sandbox oder eines der anderen Ruby-Sandkästen irgendwo nehmen könnte.

Andere Tipps

Wie gut kennen Sie / vertrauen Benutzer? Ich hoffe, die Antwort Worte wie „extrem“ und „eng“ enthält. Wie leicht könnte man erreichen, um sie mit etwas scharf und schmerzhaft, wenn sie vermasseln?

Ich kann nicht glauben, der auf einfache Weise (Heck, kann ich nicht denken kompliziert) zu ermöglichen, Upload und Installation solcher Dinge. Auch bei Wordpress, glaube ich nicht, dass sie jede beliebige Plugin erlauben auf der WP-gehostete Website installiert / ausgeführt werden. - die Risiken selbst gut gemeinte Code verursacht Probleme nur immensen meine paranoiden Gedanken scheinen

Sinatra würde sicherlich Flexibilität geben, aber das ist vielleicht nicht eine gute Sache sein, wie Sie bereits identifiziert haben.

Natürlich, wenn Ihre Benutzer Rubin / Sinatra lesen und schreiben (oder in der Lage in akzeptabler Weise so werden), dann könnte man sich ein Repository (Git, SVN oder was auch immer) gibt für ihre Anwendungen und stellen Sie sie in die entsprechende Stelle in der Zahnstange entweder < em> ad hoc oder auf einem Zeitplan.

Denken auf dem Huf, und ohne jede Vorstellung von Machbarkeit, wenn die Funktionen, die sicher zur Verfügung gestellt werden kann, relativ begrenzt sind, können Sie auf das Schreiben eine Art erzwungener DSL betrachten suchen, sie zu nutzen. Wenn die Skripts so kurz / effizient genug produziert wurden, vielleicht könnten sie innerhalb der App-Datenbank und ausgeführt über eval gespeichert werden?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top