我有一個可以通過反射來加載插件的Web應用程序。它目前使用Assembly.LoadFrom()
和Activator.CreateInstance()
完成此操作。現在,插件被加載到相同的AppDomain中,並可以訪問我的應用程序中的任何內容以及我的應用程序可以訪問的任何內容。限制.net插件可以訪問的內容
我在尋找的是一種限制插件爲安全目的可以訪問的類和方法。我想讓所有的類和方法在被調用時拋出異常,除非它們被列入白名單。我基本上將一個API類和幾個數據傳輸對象中的所有函數列入白名單。
我也不希望插件能夠訪問它自己的文件系統或數據庫。我想我可以在單獨的AppDomain中使用信任級別來實現這一點。
有沒有人有任何好的想法或資源?這是可以通過代碼訪問安全性或.net 4中新的安全透明代碼功能完成的事情嗎?
我猜你沒有一個系統管理員負責保持網站的穩定。誰添加插件?顧客? – 2010-04-15 00:13:54
我們不允許客戶將插件直接上傳到現場。不過,我們正計劃採用客戶給我們的插件,並將它們自己添加到網站中。除非我拆解dll並手動檢查,否則我不確定我是否完全信任它。 – 2010-04-15 00:16:56