2016-09-17 68 views
-3

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

+1

theres a sandbox。 –

+2

JS与浏览器(或至少浏览器的一个组件)进行通信。如果浏览器选择不允许脚本执行某些操作,则它具有该功能。 – Carcigenicate

+1

在浏览器中没有公开向OS级发送命令的API。这是为了防止用户计算机的网络黑客攻击。相比之下,Windows脚本宿主确实公开了一个shell命令,并且可以通过双击运行脚本文件(甚至隐藏了扩展名)。 – traktor53

回答

1

答案很简单:它的浏览器,你会看到浏览器就像是给予足够的权限,它可以做你的计算机上的任何其他程序为所欲为通过系统calls.It可以访问您的硬盘驱动器(不只是简单的文件系统我的意思是块/扇区级访问)阅读/删除任何它希望它甚至可以读取/编辑您的MBR!其他有趣的东西,如弹出CD托盘/把操作系统关机或休眠/格式化您的驱动器xD /无限nag屏幕/禁用网络适配器/和其他疯狂的酷东西,你可以想象如果浏览器制造商希望通过JavaScript公开这些功能,例如,所有可以完成的。如果微软在某个遥远的未来将通过system对象暴露一些系统API的对象非常类似于当前JavaScript规范中的window对象。 。你写这样一个脚本<script>system.ejectDrive['cd']</script>,浏览器可以翻译成真正的winapi电话mciSendCommand(mPar.wDeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);和宾果!它很酷,但如果一个被黑客入侵的ebay服务器发送了你的代码来清除你的D:\ drive clean代码,现在你可以想象为什么浏览器制造商如此重视安全性。你可能想知道为什么我如此痴迷于磁盘驱动器弹出xD,实际上我选择这个例子是因为它的物理性质。计算机内存中随机位的变化可能对普通用户没有任何意义,除非它具有某种“物理效应”,即使该效果可能依赖于该位。

0

JavaScript可以访问您的计算机在某些情况下: https://nakedsecurity.sophos.com/2016/06/20/ransomware-thats-100-pure-javascript-no-download-required/

一些ransomwares有自己的js文件作为电子邮件附件并诱使用户打开它本地

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

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

相关问题