Ich baue eine öffentliche Website auf, auf der Benutzer Daten und Skripte gemeinsam nutzen, um einige Daten zu verarbeiten. Die Skripte werden in diesem Zyklus serverseitig in einer Art Sandbox ohne andere Interaktion ausgeführt: Mein Perl-Programm liest aus einer Datenbank ein vom Benutzer erstelltes Skript, fügt die zu verarbeitenden Daten in das Skript ein (dh ein JSON-Dokument) und ruft dann den Interpreter auf Gibt die Antwort zurück (ein JSON-Dokument oder einfacher Text). Ich speichere sie mit meinem Perl-Skript in der Datenbank. Das Skript sollte in der Lage sein, selbst auf integrierte Funktionen zuzugreifen, die der Skriptsprache hinzugefügt wurden, aber nicht mehr.
Ich bin also auf node.js als Javascript-Interpreter gestoßen, und das vor ungefähr einer Stunde mit Googles V8 (macht v8 für so etwas Sinn?). CoffeeScript kam mir auch in den Sinn, da es gut aussieht und immer noch Javascript ist.
Ich denke, Javascript ist weit genug verbreitet und "sandboxfähiger", da es keine Betriebssystemaufrufe oder irgendetwas entfernt Unsicheres gibt (glaube ich).
Übrigens schreibe ich das System auf Perl und Php für das Frontend.
Um die Frage zu verbessern: Ich wähle Javascript, weil ich denke, dass es sicher und einfach genug ist, um es mit node.js zu implementieren. Aber welche anderen Alternativen gibt es, um diese Art von Aufgabe zu erfüllen? Lua? Python? Ich kann einfach keine Informationen darüber finden, wie ein Sandbox-Interpreter ordnungsgemäß ausgeführt wird.