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