[這個問題類似於this one,但我也有興趣在沙箱中的可能性。]腳本語言在沙箱中的C#/。NET應用
我正在考慮在我的C#中嵌入的腳本語言/.NET應用程序,然後將一些應用程序的API公開給腳本。似乎有多種不錯的選擇(Lua,Boo,IronPython等),但是有沒有簡單的選項來限制腳本語言的內置函數被使用?例如,我不希望腳本能夠執行I/O,除非通過我明確公開的API,所以不能打印到控制檯,打開文件等。執行任何這些腳本語言都可以提供一種簡單的方法這個?
[這個問題類似於this one,但我也有興趣在沙箱中的可能性。]腳本語言在沙箱中的C#/。NET應用
我正在考慮在我的C#中嵌入的腳本語言/.NET應用程序,然後將一些應用程序的API公開給腳本。似乎有多種不錯的選擇(Lua,Boo,IronPython等),但是有沒有簡單的選項來限制腳本語言的內置函數被使用?例如,我不希望腳本能夠執行I/O,除非通過我明確公開的API,所以不能打印到控制檯,打開文件等。執行任何這些腳本語言都可以提供一種簡單的方法這個?
您可以TE腳本加載到不同的AppDomain和控制第二的AppDomain的權限。
此鏈接應該讓你開始:
http://blogs.msdn.com/shawnfa/archive/2005/08/08/449050.aspx
我在Windows上使用Powershell作爲腳本語言,發現它非常有用,如果您熟悉.NET,那麼它更容易。
下載一個兩個page reference document here,這是你需要開始的一切。
但是,是的,你可以使用.NET System.IO命名空間通過PowerShell執行IO操作
同樣發佈#this link
不知道你有多大的保護需要,但不要忘記,沙盒可能還需要支付DOS攻擊 - 無限循環等。 – stusmith 2009-02-19 10:13:39