2010-10-15 23 views
1

通過COM,可以獲得對目標系統的絕對控制權。例如:在IE中使用javascript的ActiveXObject對象,可以創建某些對象,這些對象被設計爲可以直接訪問或與系統屬性和文件進行交互。人們會認爲常識意味着用戶在安裝瀏覽器後立即禁用IE中的ActiveX功能,以確保他們的系統在瀏覽網絡時受到保護,或者至少密切關注他們允許的網站。但是,我懷疑許多普通PC用戶都知道如何或爲什麼要這樣做,或者只是厭倦了隨時間的微觀管理。我認爲任何個人電腦用戶或管理我的COM類迎合將非常感激不必處理。謝天謝地,它看起來像IE版本打包ActiveX默認現在禁用。VB:獲取編譯的DLL的調用應用程序信息; COM安全

我已經建立了一個非常多在VB中多功能的COM類庫。我不打算從任何網站調用它,但該功能只是COM平臺的一部分。我想阻止從IE中調用該庫,除非該網站位於白名單域中,以主動保護用戶(並最終保護整個Intranet)免受惡意網站的傷害。 VB.Net中的最佳方法是告訴哪個應用程序調用了我的DLL,以便能夠判斷它是否從任何源自IE的命令或進程中調用?而且,什麼域名稱爲我的DLL?

編輯:我相信這可能是重複的。請參閱:Calling Assembly to get Application Name VB.NET

System.Environment.GetCommandLineArgs()(0)讓我調用應用程序路徑。有了這些信息,我可以將它與黑/白名單的應用程序進行比較。現在問題已解決。

+0

「我已經構建了一個非常靈活的COM類庫」 - 這是什麼意思? – 2010-10-15 01:35:08

+1

@Mitch小麥:這意味着我的com類無意中讓調用應用程序完全控制客戶端系統,包括它是從javascript衍生出來的。 – 2010-10-15 01:38:57

+0

@ bob-the-destroyer:這聽起來不是個好主意...... – 2010-10-15 02:38:32

回答

2

不要將控件標記爲對腳本安全。

默認的安全設置將不允許這樣的控件編寫腳本。

+0

@Slaks:不確定你的意思,「不要將控件標記爲對腳本安全。」我的COM課程並非真正意義上的來自互聯網的通話,而只是它可以。這是我需要從VB.Net庫本身中找到一種控制方法。 – 2010-10-15 01:46:08

+0

@Slaks:簡單地檢查了IObjectSafety - 但我實際上並不希望這個COM類可以通過Internet調用,即使用戶明確允許它。我會通過管理員可以設置的一些註冊表項來設置異常,以繞過我的任意阻止,但對於常規用戶,不會。 – 2010-10-15 02:09:22

+0

這意味着你在* IE下的任何腳本都可以訪問它之前有*標記你的控件。除非您明確標記,否則您的用戶是安全的。目前。 – wqw 2010-10-15 15:44:42

0

自我回答,可能是重複的,我想。請參閱System.Environment.GetCommandLineArgs()(0)Calling Assembly to get Application Name VB.NET

在這種情況下,類從未被標記爲安全的腳本,並且意圖已經永遠不會標記爲安全。問題是如何獲取調用應用程序信息,以便我可以添加額外的安全措施,以防調用應用程序所具有的不足。

相關問題