令人惊讶的是,JavaScript代码可以执行它想要的任何进程。为什么?
我问“ 很多人告诉我这是不可能的,但我的同事找到了一段可以执行任何进程的JavaScript代码。我不敢相信ActiveX如此危险 这怎么会发生?为什么IE不禁止这样做令人惊讶的是,JavaScript代码可以执行它想要的任何进程。为什么?,javascript,Javascript,我问“ 很多人告诉我这是不可能的,但我的同事找到了一段可以执行任何进程的JavaScript代码。我不敢相信ActiveX如此危险 这怎么会发生?为什么IE不禁止这样做 <SCRIPT language=JavaScript> function Run(strPath) { try { var objShell = new ActiveXObject("wscript.shell"); objShell
<SCRIPT language=JavaScript>
function Run(strPath) {
try {
var objShell = new ActiveXObject("wscript.shell");
objShell.Run(strPath);
objShell = null;
}
catch (e){alert('Can not find "'+strPath)
}
}
</SCRIPT>
<BUTTON class=button onclick="Run('notepad')">notepad</BUTTON><br>
<BUTTON class=button onclick="Run('mspaint')">mspaint</BUTTON><br>
<BUTTON class=button onclick="Run('calc')">calc</BUTTON><br>
<BUTTON class=button onclick="Run('format c:')">format c:</BUTTON><br>
函数运行(strPath){
试试{
var objShell=newActiveXObject(“wscript.shell”);
运行(strPath);
objShell=null;
}
catch(e){alert('找不到'+strPath)
}
}
记事本
mspaint
计算
格式c:
当您可以执行此操作时,IE会阻止它,说有
ActiveX控件正在尝试访问
您的计算机,请单击此处查看选项
只有在最终用户也允许的情况下,您才能运行这些程序,希望人们足够聪明,不允许它运行。如果您允许,则始终会出现另一个警报,询问您是否真的要运行此程序,以确保其周围应有足够的安全性。您尝试过吗
wscript.shell不能以这种方式从远程加载的网页中使用。如果您从本地文件加载网页或更改了安全设置,它可能会工作,但从远程web服务器加载时不会工作。好消息是,即使使用本地文件,IE8也会阻止这种行为。我不知道IE7,尽管我会想象e这也是事实。我怀疑它是否适用于远程文件,即使是IE6,否则我们现在会发生一些重大事件,并且会发布补丁。本地文件在与远程文件不同的安全环境中运行,因此,如果您将文件保存为html并从计算机上打开它,那么如果u将其上载到服务器上并尝试从服务器上运行它将不起作用。这取决于浏览器的安全配置。在某些情况下,不会执行这种代码和平。但无论如何,用户将被要求允许ActiveX运行外部进程:
ActiveX Control is trying to access you computer, click here for options
我的一个朋友甚至使用ActiveXObject在
C://
中保存了一个可执行文件。并且没有特殊级别的限制。设置来自“工厂””“为什么可能?因为我真的很烂!如果从运行它,也会发生这种情况file://No,它也可以远程工作。它只是询问用户是否希望运行activex,大多数人会选择“是”,但在我试用过的任何一台计算机上都不起作用。你的配置必须不同。不,那不是真的。我在IE8上测试了它。它只是询问用户是否希望运行activex。