VB:获取编译DLL的调用应用程序信息; COM安全性

时间:2010-10-15 01:32:20

标签: vb.net security com activexobject

通过COM,可以获得对目标系统的绝对控制。例如:在IE中使用javascript的ActiveXObject对象,可以创建某些对象,这些对象旨在直接访问或与系统属性和文件交互。人们会认为常识要求用户在安装浏览器后立即禁用IE中的ActiveX功能,以确保他们的系统在网上冲浪时受到保护,或者至少密切关注他们允许的网站。但是,我怀疑许多普通的PC用户知道如何或为什么这样做,或者只是厌倦了随着时间推移管理它。我认为任何PC用户或管理员我的COM类都非常感谢不必处理它。值得庆幸的是,现在默认情况下IE浏览器的版本已经被禁用了。

我在VB中构建了一个非常多功能的COM类库。我并不打算从任何网站上调用它,但该功能只是COM平台的一部分。我想阻止从IE调用库,除非该网站位于列入白名单的域中,以主动保护用户(以及最终的整个内部网)免受恶意网站的伤害。什么是VB.Net中最好的方法来告诉哪个应用程序称为我的DLL,能够判断它是从任何来自IE的命令或进程调用的?什么域称为我的dll?

编辑:我相信这可能是重复的。请参阅:Calling Assembly to get Application Name VB.NET

System.Environment.GetCommandLineArgs()(0)获取调用应用程序路径。有了这些信息,我可以将它与黑/白应用程序列表进行比较。问题现在解决了。

2 个答案:

答案 0 :(得分:2)

不要将控件标记为“脚本安全”。

默认安全设置不允许编写此类控件。

答案 1 :(得分:0)

我想,自我回答,可能重复。请参阅Calling Assembly to get Application Name VB.NET

中的System.Environment.GetCommandLineArgs()(0)

在这种情况下,该类从未被标记为脚本安全,并且意图已经永远不会标记为安全。问题是如何获取调用应用程序信息,以便我可以添加额外的安全措施,以防那些调用应用程序不够。