IronPython embedded Script - kann ich den Scope limitieren?
Verfasst: Freitag 18. Mai 2012, 14:11
Hallo,
Ich weiß noch gar nicht, ob ich hier mit meiner Frage überhaupt richtig bin. Falls nicht, entschuldige ich mich schonmal im Voraus.
Ich möchte IronPython gern als Script-Erweiterung für meine .NET Programme anbieten. Habe auch schon ein wenig damit experimentiert und es funktioniert soweit alles.
Eine Sache macht mir aber gerade Sorgen:
Wenn ich der Scriptengine den Zugriff auf ein oder mehrere Controls erlaube (z.B. scope.SetVariable("MyTextBox", MyTextBox)), dann kann ich mich via IronPython locker "hochhangeln".
z.B.
Und einmal "oben" angekommen, kann ich allen möglichen Unsinn treiben.
Ich hab's noch nicht ausprobiert, aber eventuell käme ich sogar an die Datenbank-Klasse ran. Und da hört der Spass dann auf.
Jetzt suche ich nach einem Weg, wie ich den Scope effektiv eingrenzen und unter meiner Kontrolle halten kann.
Die Scope-Klasse selber bietet mir ja nur die Möglichkeit, Variablen und Objekte an die Engine zu übergeben, aber nichts womit ich Objekte auch sperren oder exkludieren könnte.
Oder doch?
Wäre schön, wenn jemand eine Idee hätte.
Danke schonmal!
Lucky
Ich weiß noch gar nicht, ob ich hier mit meiner Frage überhaupt richtig bin. Falls nicht, entschuldige ich mich schonmal im Voraus.

Ich möchte IronPython gern als Script-Erweiterung für meine .NET Programme anbieten. Habe auch schon ein wenig damit experimentiert und es funktioniert soweit alles.
Eine Sache macht mir aber gerade Sorgen:
Wenn ich der Scriptengine den Zugriff auf ein oder mehrere Controls erlaube (z.B. scope.SetVariable("MyTextBox", MyTextBox)), dann kann ich mich via IronPython locker "hochhangeln".
z.B.
Code: Alles auswählen
MyForm = MyTextBox.Parent
MyMDI = MyForm.MdiParent
Ich hab's noch nicht ausprobiert, aber eventuell käme ich sogar an die Datenbank-Klasse ran. Und da hört der Spass dann auf.
Jetzt suche ich nach einem Weg, wie ich den Scope effektiv eingrenzen und unter meiner Kontrolle halten kann.
Die Scope-Klasse selber bietet mir ja nur die Möglichkeit, Variablen und Objekte an die Engine zu übergeben, aber nichts womit ich Objekte auch sperren oder exkludieren könnte.
Oder doch?
Wäre schön, wenn jemand eine Idee hätte.
Danke schonmal!

Lucky