我是currently developing an application,其中用戶將動態選擇dll,應用程序將執行該dll中的某些方法。 (如果您按照第一個鏈接,您將看到我正在開發一種使用.Net Framework的Robocode遊戲應用程序)。從「沙盒環境」中的.Net應用程序加載程序集
例如,當戰鬥開始時,將從dll執行run
方法。
由於在run方法中指定的任何內容都將被執行,所以必須應用相當多的安全約束。
就像例如,如果編寫dll的用戶,而不是僅使用從界面適用的方法(機器人用於走路和開火等的方法......),將調用將檢索文件的方法甚至可能從硬盤上刪除文件...當另一個用戶將該DLL加載到他的電腦中時,這些方法將在他的電腦上被調用,並且他的文件將被這個惡意代碼修改。
因此,我需要以某種方式使這個應用程序運行從某種沙箱環境這樣無論是調用的方法,也不會影響該DLL打開計算機的硬盤上。
關於如何開始做這件事的任何想法?
這裏是我如何加載這些DLL並調用它們的方法的例子:
for (int i = 0; i < robotList.Count; i++)
{
IRunnable o = robotList[i];
new Thread(delegate()
{
o.run();
}).Start();
}
要檢查出來;乾杯 – 2009-02-04 05:13:39