Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.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,如果HTML、CSS和JavaScript由用户的计算机处理,为什么JavaScript不能将命令发送到操作系统级别?我知道如果发生这种情况,黑客可以利用很多计算机进行攻击,但什么可以阻止这种情况发生呢?简单回答:这是浏览器,你看,浏览器就像你计算机上的任何其他程序一样,只要有足够的权限,它就可以通过系统调用做任何它想做的事情。它可以访问你的硬盘(不仅仅是简单的文件系统,我指的是块/扇区级访问)阅读/删除任何它想要的东西,它甚至可以阅读/编辑你的MBR!。其他有趣的事情,如弹出CD托盘/关闭操作

如果HTML、CSS和JavaScript由用户的计算机处理,为什么JavaScript不能将命令发送到操作系统级别?我知道如果发生这种情况,黑客可以利用很多计算机进行攻击,但什么可以阻止这种情况发生呢?

简单回答:这是浏览器,你看,浏览器就像你计算机上的任何其他程序一样,只要有足够的权限,它就可以通过系统调用做任何它想做的事情。它可以访问你的硬盘(不仅仅是简单的文件系统,我指的是块/扇区级访问)阅读/删除任何它想要的东西,它甚至可以阅读/编辑你的MBR!。其他有趣的事情,如弹出CD托盘/关闭操作系统或睡眠/格式化你的驱动器xD/无限长的nag屏幕/禁用网络适配器/和其他你可以想象的疯狂酷的事情,如果浏览器制造商希望通过javascript公开这些功能,所有这些都可以完成例如,如果微软在遥远的将来通过
system
对象公开一些系统API,这与当前javascript规范中的
window
对象非常相似。您编写这样一个脚本
system.ejectDrive['cd']
,浏览器可能会转换为实际的winapi调用
mciSendCommand(mPar.WDEVIEID,MCI\U组,MCI\U组门打开,0)
还有宾果!这很酷,但是如果一个被黑客攻击的ebay服务器给你发送了代码,让你把你的D:\驱动器清理干净呢?现在你可以想象为什么浏览器制造商如此重视安全性。你可能会想知道为什么我如此痴迷于磁盘驱动器弹出xD,实际上我之所以选择这个例子是因为它的物理特性。他的计算机内存中有一个随机的变化y对普通用户来说毫无意义,除非它具有某种“物理效果”,即使这种效果可能以某种方式依赖于该位。

在某些情况下,JavaScript可以访问您的计算机:

一些勒索软件将js文件作为电子邮件附件,诱使用户在本地打开

这不是关于JavaScript,而是关于运行脚本的软件,以及软件如何解释脚本

在浏览器中使用js,它只能执行浏览器允许的操作。
使用Node.JS,您可以编写“JavaScript”来启动自己的服务器。
当通过双击在Windows中本地运行时,可能非常危险。

有一个sandbox.JS与浏览器(或至少是浏览器的一个组件)通信。如果浏览器选择不允许脚本执行某些操作,则它有此能力。浏览器中没有API公开向操作系统级别发送命令。这是为了防止用户计算机受到web黑客攻击,正如您所说。相比之下,WIndows script Host会公开shell命令,并且可以通过双击来运行脚本文件(即使是扩展也是隐藏的)。