将JavaScript标记为安全

时间:2012-03-13 17:58:56

标签: javascript

我正在尝试运行一个javascript,它通过Web浏览器在客户端的系统上安装实用程序。与我无关,因为这些是业务要求。我似乎把一些东西放在一起就可以了,但是这样做我需要更改IE浏览器的设置以启用“启动和编写未标记为可安全编写脚本的ActiveX控件”。这显然不能在现实世界中发挥作用。如果未启用此设置,则Web浏览器上显示的所有内容都是Web浏览器底部的“页面错误”。我最终希望将脚本标记为安全,以便提示客户端运行ActiveX控件。所以我的问题是如何将javascript标记为安全。我还想指出我们的网页是使用.NET的剃刀引擎(MVC3)创建的,因此非常感谢兼容的解决方案。

cshtml snippet

script language=JavaScript

function launchExecutable(executableFullPath)

{

 var shellActiveXObject = new ActiveXObject("WScript.Shell");

 shellActiveXObject.Run(executableFullPath, 1, false);

 shellActiveXObject = null;

}

script
....

2 个答案:

答案 0 :(得分:1)

您永远无法将ActiveX控件标记为安全,因为它使网站全权委托以完全用户权限执行任何操作。

我见过的网站没有像您所说的那样安装应用程序。他们要么为他们希望客户使用的每个浏览器安装一个浏览器插件,首先安装到浏览器中然后下载并安装应用程序(我个人厌恶,Adobe),或者他们只是给你一个链接/重定向到{ {1}}或.exe.msi或任何需要用户单击对话框以开始下载和安装的安装程序。

后者的Javascript是一个简单的重定向(如果需要的话),并且工作全部在Web服务器上,确保它具有您提供的文件的正确MIME类型。

答案 1 :(得分:0)

问题不在于您的Javascript不安全,而是您正在使用的ActiveX控件未标记为可安全执行脚本。解决此问题的唯一方法是使用标记为安全的ActiveX控件,但是您需要让客户端安装该控件。

我可能会采用检测错误的方法(使用try/catch),并显示一条消息,告诉用户如何启用该选项。

相关问题