1

通过 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)让我调用应用程序路径。有了这些信息,我可以将其与应用程序的黑/白名单进行比较。问题暂时解决了。

4

2 回答 2

2

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

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

于 2010-10-15T01:41:52.977 回答
0

自我回答,并且可能重复,我想。System.Environment.GetCommandLineArgs()(0)从调用程序集查看以获取应用程序名称 VB.NET

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

于 2010-10-29T01:53:39.993 回答