如果用户的计算机处理HTML,CSS和JavaScript,为什么JavaScript不能将命令发送到操作系统级别?我知道如果发生这种情况,黑客可以利用很多计算机,但会阻止它发生什么?
答案 0 :(得分:1)
简单回答:它的浏览器,您看到浏览器就像您计算机上的任何其他程序一样,只要有足够的权限,它就可以通过系统调用执行任何操作。它可以访问您的硬盘驱动器(和不只是简单的文件系统,我的意思是块/扇区级别访问)读取/删除任何它希望它甚至可以读取/编辑你的MBR!。其他有趣的东西,如弹出CD托盘/把操作系统关闭或睡眠/格式化您的驱动器xD /无限唠叨屏幕/禁用网络适配器/和其他疯狂的酷东西你可以想象如果浏览器制造商希望通过javascript公开这些功能,例如。如果微软在某个遥远的未来通过system
对象暴露某些系统API,那么就像当前javascript规范中的window
对象一样。你编写了一个像<script>system.ejectDrive['cd']</script>
这样的脚本,浏览器可以转换为实际的winapi调用mciSendCommand(mPar.wDeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
和宾果游戏!它很酷但是如果被黑客入侵的ebay服务器发送给你的代码擦拭你的D:\驱动干净怎么办?现在你可以想象为什么浏览器制造商如此认真对待安全性。你可能想知道为什么我如此着迷磁盘驱动器弹出xD,实际上我选择这个例子是因为它的物理性质。计算机内存中的随机位可能对普通用户没有任何意义,除非它具有某种“物理效应”,即使该效果可能某种程度上依赖于该位。
答案 1 :(得分:0)
在某些情况下,JavaScript可以访问您的计算机: https://nakedsecurity.sophos.com/2016/06/20/ransomware-thats-100-pure-javascript-no-download-required/
一些勒索软件将其js文件作为电子邮件附件并诱使用户在本地打开。
它不是关于JavaScript,而是关于运行脚本的软件,以及软件如何解释它。
在浏览器中使用js,它只能执行浏览器允许的操作 使用Node.JS,您可以编写“JavaScript”来启动自己的服务器。 通过双击在Windows中本地运行时,它可能非常危险。