Ich möchte Skripten für Endbenutzer (die serverseitig ausgeführt werden) in einer Anwendung bereitstellen. Ich habe gelesen und festgestellt, dass Sandboxing viel mehr ein Problem ist, als ich dachte.Skripterstellung für Endbenutzer
Ich interessiere mich nicht wirklich was die Sprache ist. LUA, Python, JavaScript, mir geht es gut mit allem, was lesbar ist.
Wie schwer ist es, eine Funktion in einem nicht vertrauenswürdigen Skript auszuführen, einige Informationen weiterzuleiten und weitere zu erhalten? Ich habe gelesen, JVM Security Manager ist ein No-Go und Python ist fast nicht anpassbar, aber ich habe sehr wenig Wissen über das Thema und kann die Quellen nicht wirklich beurteilen.
Wie kann ich zum Beispiel eine Funktion in JS interpretieren, die ein JSON (von, sagen wir, Java oder Python oder sogar node.js) übernimmt und das zurückgegebene JSON zurückbekommt?
Ich würde gerne vermeiden, einen pythonish i-gerade-wissen-es-willst-suck Sprachinterpreter selbst zu implementieren.
JavaScript scheint hier die sicherste Option zu sein. Es ist im Grunde für genau diesen Zweck konzipiert. –
Zum Sandboxing von Python gibt es [einige Hinweise] (http://wiki.python.org/moin/Asking%20for%20Help/How%20can%20I%20run%20an%20untrusted%20Python%20script%20safely%20 % 28i.e.% 20Sandbox% 29) da draußen. –
@Lattyware: Der Ratschlag, CPython zu sichern, ist im Grunde nutzlos, IMHO. Sie empfehlen Chrooting (was unsicher ist) und Virtualisierung (was teuer ist). –