Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将URL从javascript传递到ActiveX是否存在安全漏洞?_Javascript_C++_Activex - Fatal编程技术网

将URL从javascript传递到ActiveX是否存在安全漏洞?

将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

我有一个ActiveX控件,基本上检查是否安装了我们公司的软件,如果没有安装。 (因为我的老板不想只下载exe,他希望ActiveX控件启动setup.exe)。 现在,如果我从javascript中传递URL和程序名,会不会很糟糕

到目前为止,我的idl界面如下:

    //  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存储在控件的资源中。