Javascript 从web浏览器(最重要的是IE),JS执行本地命令的最可靠方法是什么?

Javascript 从web浏览器(最重要的是IE),JS执行本地命令的最可靠方法是什么?,javascript,internet-explorer,Javascript,Internet Explorer,我无法在IE中找到允许file:uri运行可执行文件的安全设置(例如,window.location.open(“file:///C|/程序文件/foo/bar.exe”) 是否有一种设置允许某些站点运行类似的操作,或者是否有某种类型的Java小程序或ActiveX控件可以完成相同的操作 感谢您提供的提示。幸运的是,如果不使用漏洞攻击或类似的黑客攻击,在任何情况下都不可能做到这一点 ActiveX对象或Java小程序这样做通常是恶意软件,或者至少被反病毒启发式算法认为是恶意软件,因为它们通常就是

我无法在IE中找到允许file:uri运行可执行文件的安全设置(例如,window.location.open(“file:///C|/程序文件/foo/bar.exe”)

是否有一种设置允许某些站点运行类似的操作,或者是否有某种类型的Java小程序或ActiveX控件可以完成相同的操作


感谢您提供的提示。

幸运的是,如果不使用漏洞攻击或类似的黑客攻击,在任何情况下都不可能做到这一点


ActiveX对象或Java小程序这样做通常是恶意软件,或者至少被反病毒启发式算法认为是恶意软件,因为它们通常就是这样。

这里有一个简单的例子,使用
WScript.Shell
表示IE only:当然,它会触发“此页面上的ActiveX控件…”警告。 (当然,这不是使用
文件://
URI来启动应用程序,但页面是通过
文件://
加载的)

在IE8中测试:

<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript">
            (function () {
                var wsh = null;
                if ( self.ActiveXObject ) {
                    try {
                        wsh = new ActiveXObject( "WScript.Shell" );
                    } catch ( e ) {}
                    // Check for permission
                    if ( !wsh ) {
                        alert("Sorry, could not get permission");
                        return;
                    }
                    wsh.run("notepad.exe");
                    alert("Notepad should now be open");
                } else {
                    alert("Sorry, this example is IE-only");
                }
            })();
        </script>
    </head>
    <body>

    </body>
</html>

(功能(){
var wsh=null;
if(self.ActiveXObject){
试一试{
wsh=新的ActiveXObject(“WScript.Shell”);
}捕获(e){}
//检查是否允许
如果(!wsh){
警报(“抱歉,无法获得许可”);
返回;
}
run(“notepad.exe”);
警报(“记事本现在应该打开”);
}否则{
警报(“对不起,此示例仅适用于IE”);
}
})();

FireFox确实在某个地方有一个开关来允许这一点。我正在寻找IE或其他方法。不过谢谢你的夸奖。@Ben:如果FF允许这样做,但至少没有一句“嘿,这太危险了!你确定吗?”每次有人试图打开一个文件:url,我就再也不会使用它了。但有些事情告诉我,你们看到的选项并不像你们认为的那个样,当然也有警告。我没有试图规避安全性。修改任意
about:config
设置可能会很危险。但我怀疑让网站执行本地系统命令有那么容易。