Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
令人惊讶的是,JavaScript代码可以执行它想要的任何进程。为什么?_Javascript - Fatal编程技术网

令人惊讶的是,JavaScript代码可以执行它想要的任何进程。为什么?

令人惊讶的是,JavaScript代码可以执行它想要的任何进程。为什么?,javascript,Javascript,我问“ 很多人告诉我这是不可能的,但我的同事找到了一段可以执行任何进程的JavaScript代码。我不敢相信ActiveX如此危险 这怎么会发生?为什么IE不禁止这样做 <SCRIPT language=JavaScript> function Run(strPath) { try { var objShell = new ActiveXObject("wscript.shell"); objShell

我问“

很多人告诉我这是不可能的,但我的同事找到了一段可以执行任何进程的JavaScript代码。我不敢相信ActiveX如此危险

这怎么会发生?为什么IE不禁止这样做

    <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。