将URL从javascript传递到ActiveX是否存在安全漏洞?
我有一个ActiveX控件,基本上检查是否安装了我们公司的软件,如果没有安装。 (因为我的老板不想只下载exe,他希望ActiveX控件启动setup.exe)。 现在,如果我从javascript中传递URL和程序名,会不会很糟糕 到目前为止,我的idl界面如下:将URL从javascript传递到ActiveX是否存在安全漏洞?,javascript,c++,activex,Javascript,C++,Activex,我有一个ActiveX控件,基本上检查是否安装了我们公司的软件,如果没有安装。 (因为我的老板不想只下载exe,他希望ActiveX控件启动setup.exe)。 现在,如果我从javascript中传递URL和程序名,会不会很糟糕 到目前为止,我的idl界面如下: // Primary dispatch interface for CMyAwesomeControl [ uuid(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) ] dispi
// Primary dispatch interface for CMyAwesomeControl
[
uuid(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
]
dispinterface _DMyAwesomeControl
{
properties:
methods:
[id(1)] LONG IsProgramInstalled(BSTR programName);
[id(2)] LONG InstallProgram(BSTR installURL);
};
我当然担心向这些函数中注入任何恶意的东西,但既然javascript是在客户端运行的,那就不重要了,对吗?
否则,我想我可以提取这个activeX正在运行的URL,并确保它始终是我们公司的域(但还是硬编码:/)
我很抱歉,如果这个问题让那些更懂安全的人感到毛骨悚然:p
编辑:
只需补充一点,在控件的资源中包含setup.exe+.msi是可以的,但这将是一个需要更新的PITA。
否则,我可以只在资源中包含setup.exe,并将.msi保留在服务器上,并将url存储在安装程序中。只要您对exe进行签名,并在运行它之前检查此签名,我不明白这与让用户下载exe并自己运行它有什么不同
但是,请确保您的证书有效,这样您就可以在用户的机器上实际检查这一点(即不进行自签名)。好的,有人入侵/注入页面,并将您的nice url从
example.com/ourapp.exe
更改为nastysite.org/virus.exe
。。。可接受?这是否意味着我可以通过javascript启动任何程序?好的,所以他们必须进入服务器;还是不要冒险吧。程序名可以吗?是的,可执行文件已签名;老板对要求很挑剔,我只是服从。显然IE对用户发出了太多的警告,这是很公平的。我仍将采用更安全的路径,并将setup.exe存储在控件的资源中。