为什么JavaScript不能向操作系统级别发送命令?

Why can't JavaScript send commands to the OS level?

本文关键字:命令 JavaScript 不能 操作系统 为什么      更新时间:2023-09-26

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

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

JavaScript在某些情况下可以访问你的计算机:https://nakedsecurity.sophos.com/2016/06/20/ransomware -那- 100纯javascript -不-下载- required/

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

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

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