通过 COM,可以潜在地获得对目标系统的绝对控制权。例如:在 IE 中使用 javascript 的 ActiveXObject 对象,可以创建某些旨在直接访问或与系统属性和文件交互的对象。人们会认为常识要求用户在安装浏览器后立即禁用 IE 中的 ActiveX 功能,以确保他们的系统在上网时受到保护,或者至少密切关注他们允许的网站。但是,我怀疑许多普通 PC 用户是否知道如何或为什么要这样做,或者只是厌倦了随着时间的推移进行微管理。我认为我的 COM 课程迎合的任何 PC 用户或管理员都会非常感谢不必处理这些问题。值得庆幸的是,现在 IE 版本似乎默认禁用 ActiveX。
我在 VB 中构建了一个非常通用的 COM 类库。我不打算让它可以从任何网站调用,但该功能只是 COM 平台的一部分。我想阻止从 IE 调用该库,除非该网站位于白名单域中,以主动保护用户(并最终保护他们的整个 Intranet)免受恶意网站的伤害。在 VB.Net 中判断哪个应用程序调用了我的 DLL 的最佳方法是什么,以便能够判断它是否是从源自 IE 的任何命令或进程调用的?而且,什么域调用了我的 dll?
编辑:我相信这可能是重复的。请参阅:调用程序集以获取应用程序名称 VB.NET
System.Environment.GetCommandLineArgs()(0)
让我调用应用程序路径。有了这些信息,我可以将其与应用程序的黑/白名单进行比较。问题暂时解决了。