我有一个 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);
};
我当然担心会在这些函数中注入(inject)任何恶意内容,但由于 javascript 在客户端运行,所以应该无关紧要吧? 否则,我认为我可以提取运行此 activeX 的 URL,并确保它始终是我们公司的域(但同样,对其进行硬编码 :/)。
如果这个问题让那些更精通安全的人 panic ,我提前道歉:P
编辑: 只是补充一点,将 setup.exe + .msi 包含在控件的资源中会很好,但这将是一个需要更新的 PITA。 否则,我可以只在资源中包含 setup.exe,而将 .msi 留在服务器上,并将 url 存储在设置中。
最佳答案
只要你对你的 exe 进行签名,并在运行它之前检查这个签名,我不明白这与让用户下载 exe 并自己运行它有什么不同。
但请确保您的证书有效,这样您就可以在用户的机器上实际检查它(即没有自签名)。
关于javascript - 将 URL 从 javascript 传递到 ActiveX 会是一个安全漏洞吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9118293/